Function at 0x5e8900
Capabilities:
Resolve function by parsing pe exports

Disassembly:
mov ecx, dword fs:[0x14]
mov ecx, dword [ecx]
lea eax, [esp - 0x114]
cmp eax, dword [ecx + 8]
jbe 0x5ea0e5
sub esp, 0x194
lea eax, [0x609bc0]
mov dword [esp], eax
call fcn.0040b5f0
mov eax, dword [esp + 4]
mov dword [esp + 0xa4], eax
mov ecx, dword [esp + 0x19c]
mov dword [esp], ecx
mov edx, dword [esp + 0x1a0]
mov dword [esp + 4], edx
mov dword [esp + 8], eax
mov dword [esp + 0xc], 0x2e
mov dword [esp + 0x10], 0x2e
mov dword [esp + 0x14], 0x2e
call fcn.00483bc0
mov eax, dword [esp + 0x1c]
mov ecx, dword [esp + 0x1c]
mov edx, dword [esp + 0x20]
test eax, eax
jne 0x5e90f1
mov edx, dword [esp + 0xa4]
mov dword [esp + 0xc0], edx
mov dword [esp + 0xc4], 0x2e
mov dword [esp + 0xc8], 0x2e
mov edx, dword [esp + 0xc0]
mov ebx, dword [edx]
mov dword [esp + 0xc4], 0x2a
mov dword [esp + 0xc8], 0x2a
lea ebp, [edx + 4]
mov dword [esp + 0xc0], ebp
cmp ebx, 0x2014b50
jne 0x5e90d0
nop
movzx ebx, word [edx + 4]
mov dword [esp + 0xc4], 0x28
mov dword [esp + 0xc8], 0x28
add edx, 6
mov dword [esp + 0xc0], edx
mov edx, dword [esp + 0x198]
mov word [edx + 0x12], bx
mov ecx, dword [esp + 0xc4]
mov ebx, dword [esp + 0xc0]
mov ebp, dword [esp + 0xc8]
cmp ecx, 1
jbe 0x5ea0da
lea esi, [ecx - 2]
movzx edi, word [ebx]
mov dword [esp + 0xc4], esi
add ebp, 0xfffffffe
mov dword [esp + 0xc8], ebp
xchg ebp, ebx
neg ebx
xchg ebp, ebx
sar ebp, 0x1f
and ebp, 2
add ebx, ebp
mov dword [esp + 0xc0], ebx
mov word [edx + 0x14], di
mov ecx, dword [esp + 0xc4]
mov ebx, dword [esp + 0xc0]
mov ebp, dword [esp + 0xc8]
cmp ecx, 1
jbe 0x5ea0d0
lea esi, [ecx - 2]
movzx edi, word [ebx]
mov dword [esp + 0xc4], esi
add ebp, 0xfffffffe
mov dword [esp + 0xc8], ebp
xchg ebp, ebx
neg ebx
xchg ebp, ebx
sar ebp, 0x1f
and ebp, 2
add ebx, ebp
mov dword [esp + 0xc0], ebx
mov word [edx + 0x16], di
mov ecx, dword [esp + 0xc4]
mov ebx, dword [esp + 0xc0]
mov ebp, dword [esp + 0xc8]
cmp ecx, 1
jbe 0x5ea0c6
lea esi, [ecx - 2]
movzx edi, word [ebx]
mov dword [esp + 0xc4], esi
add ebp, 0xfffffffe
mov dword [esp + 0xc8], ebp
xchg ebp, ebx
neg ebx
xchg ebp, ebx
sar ebp, 0x1f
and ebp, 2
add ebx, ebp
mov dword [esp + 0xc0], ebx
mov word [edx + 0x18], di
mov ecx, dword [esp + 0xc4]
mov ebx, dword [esp + 0xc0]
mov ebp, dword [esp + 0xc8]
cmp ecx, 1
jbe 0x5ea0bc
lea esi, [ecx - 2]
movzx edi, word [ebx]
mov dword [esp + 0xc4], esi
add ebp, 0xfffffffe
mov dword [esp + 0xc8], ebp
xchg ebp, ebx
neg ebx
xchg ebp, ebx
sar ebp, 0x1f
and ebp, 2
add ebx, ebp
mov dword [esp + 0xc0], ebx
mov word [edx + 0x30], di
mov ecx, dword [esp + 0xc4]
mov ebx, dword [esp + 0xc0]
mov ebp, dword [esp + 0xc8]
cmp ecx, 1
jbe 0x5ea0b2
lea esi, [ecx - 2]
movzx edi, word [ebx]
mov dword [esp + 0xc4], esi
add ebp, 0xfffffffe
mov dword [esp + 0xc8], ebp
xchg ebp, ebx
neg ebx
xchg ebp, ebx
sar ebp, 0x1f
and ebp, 2
add ebx, ebp
mov dword [esp + 0xc0], ebx
mov word [edx + 0x32], di
mov ecx, dword [esp + 0xc4]
mov ebx, dword [esp + 0xc0]
mov ebp, dword [esp + 0xc8]
cmp ecx, 3
jbe 0x5ea0a8
mov dword [esp + 0x90], ebx
lea esi, [ecx - 4]
mov edi, dword [ebx]
mov dword [esp + 0xc4], esi
mov eax, ebp
add ebp, 0xfffffffc
mov dword [esp + 0xc8], ebp
xchg ebp, ebx
neg ebx
xchg ebp, ebx
sar ebp, 0x1f
and ebp, 4
add ebx, ebp
mov dword [esp + 0xc0], ebx
mov dword [edx + 0x34], edi
nop
cmp esi, 3
jbe 0x5ea09c
mov dword [esp + 0xa0], ebx
lea esi, [ecx - 8]
mov edi, dword [esp + 0x90]
mov ebp, dword [ebp + edi]
mov dword [esp + 0xc4], esi
lea edi, [eax - 8]
mov dword [esp + 0xc8], edi
xchg edi, ebx
neg ebx
xchg edi, ebx
sar edi, 0x1f
and edi, 4
add ebx, edi
mov dword [esp + 0xc0], ebx
mov dword [edx + 0x38], ebp
nop
cmp esi, 3
jbe 0x5ea090
lea ebp, [ecx - 0xc]
mov esi, dword [esp + 0xa0]
mov esi, dword [esi + edi]
mov dword [esp + 0xc4], ebp
lea ebp, [eax - 0xc]
mov dword [esp + 0xc8], ebp
xchg ebp, ebx
neg ebx
xchg ebp, ebx
sar ebp, 0x1f
and ebp, 4
add ebx, ebp
mov dword [esp + 0xc0], ebx
mov dword [edx + 0x3c], esi
mov ebx, dword [edx + 0x38]
mov dword [edx + 0x40], ebx
mov dword [edx + 0x44], 0
mov dword [edx + 0x48], esi
mov dword [edx + 0x4c], 0
nop
mov ecx, dword [esp + 0xc4]
mov ebx, dword [esp + 0xc8]
mov ebp, dword [esp + 0xc0]
cmp ecx, 1
jbe 0x5ea086
lea esi, [ecx - 2]
movzx edi, word [ebp]
mov dword [esp + 0xc4], esi
mov eax, edi
lea edi, [ebx - 2]
mov dword [esp + 0xc8], edi
xchg edi, ebx
neg ebx
xchg edi, ebx
sar edi, 0x1f
and edi, 2
lea edx, [ebp + edi]
mov dword [esp + 0xc0], edx
nop
nop
cmp esi, 1
jbe 0x5ea07a
lea esi, [ecx - 4]
movzx ebp, word [edi + ebp]
mov dword [esp + 0x8c], ebp
mov dword [esp + 0xc4], esi
lea edi, [ebx - 4]
mov dword [esp + 0xc8], edi
xchg edi, ebx
neg ebx
xchg edi, ebx
sar edi, 0x1f
and edi, 2
lea ebp, [edi + edx]
mov dword [esp + 0xc0], ebp
nop
nop
cmp esi, 1
jbe 0x5ea06e
lea esi, [ecx - 6]
movzx edx, word [edi + edx]
mov dword [esp + 0xc4], esi
lea edi, [ebx - 6]
mov dword [esp + 0xc8], edi
xchg edi, ebx
neg ebx
xchg edi, ebx
sar edi, 0x1f
and edi, 2
add ebp, edi
mov dword [esp + 0xc0], ebp
cmp esi, 4
jb 0x5ea062
mov dword [esp + 0x88], edx
lea esi, [ebx - 0xa]
mov edi, esi
xchg esi, ebx
neg ebx
xchg esi, ebx
sar esi, 0x1f
and esi, 4
lea edx, [esi + ebp]
mov dword [esp + 0xa0], edx
mov dword [esp + 0xc0], edx
lea edx, [ecx - 0xa]
mov dword [esp + 0xc4], edx
mov dword [esp + 0xc8], edi
nop
cmp edx, 3
jbe 0x5ea056
mov dword [esp + 0x54], ebx
lea edx, [ecx - 0xe]
mov ebp, dword [ebp + esi]
mov dword [esp + 0xc4], edx
lea esi, [ebx - 0xe]
mov dword [esp + 0xc8], esi
xchg esi, ebx
neg ebx
xchg esi, ebx
sar esi, 0x1f
and esi, 4
mov edi, dword [esp + 0xa0]
lea ebx, [edi + esi]
mov dword [esp + 0xa0], ebx
mov dword [esp + 0xc0], ebx
mov ebx, dword [esp + 0x198]
mov dword [ebx + 0x5c], ebp
nop
cmp edx, 3
jbe 0x5ea04a
mov dword [esp + 0x84], eax
add ecx, 0xffffffee
mov edx, dword [edi + esi]
mov dword [esp + 0xc4], ecx
mov ecx, dword [esp + 0x54]
add ecx, 0xffffffee
mov dword [esp + 0xc8], ecx
neg ecx
sar ecx, 0x1f
and ecx, 4
mov ebp, dword [esp + 0xa0]
add ecx, ebp
mov dword [esp + 0xc0], ecx
mov dword [ebx + 0x6c], edx
mov dword [ebx + 0x70], 0
lea ecx, [0x60da40]
mov dword [esp], ecx
mov ecx, dword [esp + 0x8c]
lea edx, [eax + ecx]
mov dword [esp + 0x80], edx
mov ebp, dword [esp + 0x88]
lea esi, [edx + ebp]
mov dword [esp + 0x50], esi
mov dword [esp + 4], esi
mov dword [esp + 8], esi
call fcn.00447550
mov eax, dword [esp + 0xc]
mov dword [esp + 0x9c], eax
mov ecx, dword [esp + 0x19c]
mov dword [esp], ecx
mov ecx, dword [esp + 0x1a0]
mov dword [esp + 4], ecx
mov dword [esp + 8], eax
mov ecx, dword [esp + 0x50]
mov dword [esp + 0xc], ecx
mov dword [esp + 0x10], ecx
mov dword [esp + 0x14], ecx
call fcn.00483bc0
mov eax, dword [esp + 0x1c]
mov ecx, dword [esp + 0x1c]
mov edx, dword [esp + 0x20]
test eax, eax
jne 0x5e90bb
mov ecx, dword [esp + 0x84]
mov edx, dword [esp + 0x50]
cmp ecx, edx
ja 0x5ea045
mov dword [esp], 0
mov eax, dword [esp + 0x9c]
mov dword [esp + 4], eax
mov dword [esp + 8], ecx
call fcn.0044acc0
mov eax, dword [esp + 0xc]
mov ecx, dword [esp + 0x10]
mov edi, dword [esp + 0x198]
mov dword [edi + 4], ecx
mov ecx, dword [0x816df0]
test ecx, ecx
jne 0x5e8f06
mov dword [edi], eax
jmp 0x5e8f0b
call fcn.0045e5d0
mov edx, dword [esp + 0x50]
mov ecx, dword [esp + 0x80]
cmp edx, ecx
jb 0x5ea040
mov eax, dword [esp + 0x84]
cmp eax, ecx
ja 0x5ea03b
mov ebx, dword [esp + 0x8c]
mov dword [edi + 0x54], ebx
sub edx, eax
mov dword [edi + 0x58], edx
mov ebx, dword [0x816df0]
neg edx
sar edx, 0x1f
and eax, edx
mov edx, dword [esp + 0x9c]
add eax, edx
mov ebp, dword [esp + 0x88]
mov esi, ebp
xchg ebp, ebx
neg ebx
xchg ebp, ebx
sar ebp, 0x1f
and ecx, ebp
add ecx, edx
test ebx, ebx
jne 0x5e8f71
mov dword [edi + 0x50], eax
jmp 0x5e8f7b
lea edx, [edi + 0x50]
mov edi, edx
call fcn.0045e5d0
mov dword [esp], 0
mov dword [esp + 4], ecx
mov dword [esp + 8], esi
call fcn.0044acc0
mov eax, dword [esp + 0xc]
mov ecx, dword [esp + 0x10]
mov edx, dword [esp + 0x198]
mov dword [edx + 0xc], ecx
mov ecx, dword [0x816df0]
test ecx, ecx
jne 0x5e8fb0
mov dword [edx + 8], eax
jmp 0x5e8fb8
lea edi, [edx + 8]
call fcn.0045e5d0
mov eax, dword [edx]
mov ecx, dword [edx + 4]
mov dword [esp], eax
mov dword [esp + 4], ecx
call fcn.005ebfc0
movzx eax, byte [esp + 8]
mov byte [esp + 0x35], al
movzx ecx, byte [esp + 9]
mov byte [esp + 0x36], cl
mov edx, dword [esp + 0x198]
mov ebx, dword [edx + 8]
mov ebp, dword [edx + 0xc]
mov dword [esp], ebx
mov dword [esp + 4], ebp
call fcn.005ebfc0
movzx eax, byte [esp + 8]
movzx ecx, byte [esp + 9]
movzx edx, byte [esp + 0x35]
test dl, dl
je 0x5e903d
test al, al
je 0x5e903d
movzx edx, byte [esp + 0x36]
test dl, dl
jne 0x5e9018
test cl, cl
je 0x5e9030
mov ecx, dword [esp + 0x198]
movzx edx, word [ecx + 0x16]
test dx, 0x800
sete dl
mov byte [ecx + 0x10], dl
jmp 0x5e9048
mov ecx, dword [esp + 0x198]
mov byte [ecx + 0x10], 0
jmp 0x5e9048
mov ecx, dword [esp + 0x198]
mov byte [ecx + 0x10], 1
mov edx, dword [ecx + 0x70]
mov ebx, dword [ecx + 0x3c]
mov ebp, dword [ecx + 0x38]
mov dword [esp + 0x7c], ebp
mov eax, edx
mov edx, dword [ecx + 0x6c]
lea edi, [esp + 0x16c]
mov esi, eax
xor eax, eax
call fcn.0045e87b
mov ecx, dword [esp + 0x198]
mov edi, edx
mov edx, dword [ecx + 0x50]
mov ebp, dword [ecx + 0x54]
mov ecx, dword [ecx + 0x58]
mov dword [esp + 0xb4], edx
mov dword [esp + 0xb8], ebp
mov dword [esp + 0xbc], ecx
cmp ebx, 0xffffffff
sete cl
mov edx, dword [esp + 0x7c]
cmp edx, 0xffffffff
sete dl
cmp edi, 0xffffffff
sete bl
test esi, esi
xchg ebp, ebx
sete bl
xchg ebp, ebx
and ebp, ebx
mov ebx, dword [esp + 0x198]
jmp 0x5e910e
mov dword [esp + 0x1a4], ecx
mov dword [esp + 0x1a8], edx
add esp, 0x194
ret
mov eax, dword [0x7ef5f0]
mov ecx, dword [0x7ef5f4]
mov dword [esp + 0x1a4], eax
mov dword [esp + 0x1a8], ecx
add esp, 0x194
ret
mov dword [esp + 0x1a4], ecx
mov dword [esp + 0x1a8], edx
add esp, 0x194
ret
mov ebx, ecx
mov edx, edi
mov ecx, ebp
mov ebp, esi
mov byte [esp + 0x39], dl
xchg ebp, eax
mov byte [esp + 0x38], al
xchg ebp, eax
mov esi, ebp
mov ebp, dword [esp + 0xbc]
mov edi, edx
mov edx, dword [esp + 0xb4]
mov ebx, dword [esp + 0xb8]
cmp ebx, 4
jl 0x5e9854
mov dword [esp + 0xa0], edx
mov dword [esp + 0x8c], ebp
mov dword [esp + 0x88], ebx
nop
nop
add ebx, 0xfffffffe
movzx edx, word [edx]
mov word [esp + 0x3a], dx
mov dword [esp + 0xb8], ebx
lea edx, [ebp - 2]
mov dword [esp + 0xbc], edx
mov edx, dword [esp + 0xa0]
lea ebp, [edx + 2]
mov dword [esp + 0xb4], ebp
nop
nop
cmp ebx, 1
jbe 0x5ea02f
mov ebx, dword [esp + 0x88]
lea ebp, [ebx - 4]
movzx ebx, word [edx + 2]
mov dword [esp + 0x84], ebx
mov dword [esp + 0xb8], ebp
mov ebx, dword [esp + 0x8c]
add ebx, 0xfffffffc
mov dword [esp + 0x80], ebx
mov dword [esp + 0xbc], ebx
neg ebx
sar ebx, 0x1f
and ebx, 2
mov dword [esp + 0x78], ebx
lea edx, [edx + ebx + 2]
mov dword [esp + 0xb4], edx
mov ebx, dword [esp + 0x84]
cmp ebx, ebp
jg 0x5e9854
mov byte [esp + 0x37], cl
mov ebp, dword [esp + 0x88]
sub ebp, ebx
add ebp, 0xfffffffc
mov dword [esp + 0xb8], ebp
mov ebp, dword [esp + 0x8c]
sub ebp, ebx
add ebp, 0xfffffffc
mov dword [esp + 0xbc], ebp
xchg ebp, ebx
neg ebx
xchg ebp, ebx
sar ebp, 0x1f
and ebp, ebx
add ebp, edx
mov dword [esp + 0xb4], ebp
mov dword [esp + 0xa8], edx
mov dword [esp + 0xac], ebx
mov ebp, dword [esp + 0x80]
mov dword [esp + 0xb0], ebp
movzx ebp, word [esp + 0x3a]
cmp bp, 0xa
ja 0x5e9582
cmp bp, 1
jne 0x5e9530
mov edx, dword [esp + 0x198]
mov byte [edx + 0x74], 1
test cl, cl
je 0x5e935f
mov ebx, dword [esp + 0xa8]
mov ebp, dword [esp + 0xac]
mov ecx, edx
mov edx, dword [esp + 0xb0]
cmp ebp, 8
jl 0x5e97f1
mov dword [esp + 0x8c], edx
nop
add ebp, 0xfffffff8
movzx edx, byte [ebx]
mov dword [esp + 0x7c], edx
movzx edx, byte [ebx + 1]
mov dword [esp + 0x74], edx
movzx edx, byte [ebx + 2]
mov dword [esp + 0x70], edx
movzx edx, byte [ebx + 3]
mov dword [esp + 0x6c], edx
movzx edx, byte [ebx + 4]
mov dword [esp + 0x68], edx
movzx edx, byte [ebx + 5]
mov dword [esp + 0x64], edx
movzx edx, byte [ebx + 6]
mov dword [esp + 0x60], edx
movzx edx, byte [ebx + 7]
mov dword [esp + 0x5c], edx
mov dword [esp + 0xac], ebp
mov ebp, dword [esp + 0x8c]
add ebp, 0xfffffff8
mov dword [esp + 0xb0], ebp
xchg ebp, ebx
neg ebx
xchg ebp, ebx
sar ebp, 0x1f
and ebp, 8
add ebx, ebp
mov dword [esp + 0xa8], ebx
mov ebx, dword [esp + 0x74]
mov ebp, ebx
shl ebx, 8
mov edx, dword [esp + 0x7c]
or ebx, edx
mov edx, dword [esp + 0x70]
shl edx, 0x10
or edx, ebx
mov ebx, dword [esp + 0x6c]
shl ebx, 0x18
or ebx, edx
mov dword [ecx + 0x48], ebx
shr ebp, 0x18
mov edx, dword [esp + 0x70]
shr edx, 0x10
or edx, ebp
mov ebx, dword [esp + 0x6c]
shr ebx, 8
or ebx, edx
mov edx, dword [esp + 0x68]
or edx, ebx
mov ebx, dword [esp + 0x64]
shl ebx, 8
or ebx, edx
mov edx, dword [esp + 0x60]
shl edx, 0x10
or ebx, edx
mov edx, dword [esp + 0x5c]
shl edx, 0x18
or ebx, edx
mov dword [ecx + 0x4c], ebx
jmp 0x5e9361
mov ecx, edx
xchg edi, eax
test al, al
xchg edi, eax
je 0x5e9447
mov edx, dword [esp + 0xa8]
mov ebx, dword [esp + 0xac]
mov ebp, dword [esp + 0xb0]
cmp ebx, 8
jl 0x5e9812
nop
add ebx, 0xfffffff8
mov edi, ebp
movzx ebp, byte [edx]
mov dword [esp + 0x7c], ebp
movzx ebp, byte [edx + 1]
mov dword [esp + 0x74], ebp
movzx ebp, byte [edx + 2]
mov dword [esp + 0x70], ebp
movzx ebp, byte [edx + 3]
mov dword [esp + 0x6c], ebp
movzx ebp, byte [edx + 4]
mov dword [esp + 0x68], ebp
movzx ebp, byte [edx + 5]
mov dword [esp + 0x64], ebp
movzx ebp, byte [edx + 6]
mov dword [esp + 0x60], ebp
movzx ebp, byte [edx + 7]
mov dword [esp + 0xac], ebx
lea ebx, [edi - 8]
mov dword [esp + 0xb0], ebx
neg ebx
sar ebx, 0x1f
and ebx, 8
add edx, ebx
mov dword [esp + 0xa8], edx
mov edx, dword [esp + 0x74]
mov ebx, edx
shl edx, 8
mov edi, ebp
mov ebp, dword [esp + 0x7c]
or edx, ebp
mov ebp, dword [esp + 0x70]
shl ebp, 0x10
or ebp, edx
mov edx, dword [esp + 0x6c]
shl edx, 0x18
or edx, ebp
mov dword [ecx + 0x40], edx
shr ebx, 0x18
mov edx, dword [esp + 0x70]
shr edx, 0x10
or edx, ebx
mov ebx, dword [esp + 0x6c]
shr ebx, 8
or ebx, edx
mov edx, dword [esp + 0x68]
or edx, ebx
mov ebx, dword [esp + 0x64]
shl ebx, 8
or edx, ebx
mov ebx, dword [esp + 0x60]
shl ebx, 0x10
or edx, ebx
shl edi, 0x18
or edx, edi
mov dword [ecx + 0x44], edx
xchg esi, eax
test al, al
xchg esi, eax
je 0x5e9525
mov edx, dword [esp + 0xa8]
mov ebx, dword [esp + 0xac]
mov ebp, dword [esp + 0xb0]
cmp ebx, 8
jl 0x5e9833
nop
add ebx, 0xfffffff8
mov esi, ebp
movzx ebp, byte [edx]
mov edi, ebp
movzx ebp, byte [edx + 1]
mov dword [esp + 0x7c], ebp
movzx ebp, byte [edx + 2]
mov dword [esp + 0x74], ebp
movzx ebp, byte [edx + 3]
mov dword [esp + 0x70], ebp
movzx ebp, byte [edx + 4]
mov dword [esp + 0x6c], ebp
movzx ebp, byte [edx + 5]
mov dword [esp + 0x68], ebp
movzx ebp, byte [edx + 6]
mov dword [esp + 0x64], ebp
movzx ebp, byte [edx + 7]
mov dword [esp + 0xac], ebx
lea ebx, [esi - 8]
mov dword [esp + 0xb0], ebx
neg ebx
sar ebx, 0x1f
and ebx, 8
add edx, ebx
mov dword [esp + 0xa8], edx
mov edx, dword [esp + 0x7c]
mov ebx, edx
shl edx, 8
or edi, edx
mov edx, dword [esp + 0x74]
mov esi, edx
shl edx, 0x10
or edx, edi
mov edi, ebp
mov ebp, dword [esp + 0x70]
shl ebp, 0x18
or ebp, edx
mov dword [ecx + 0x6c], ebp
shr ebx, 0x18
shr esi, 0x10
or ebx, esi
mov edx, dword [esp + 0x70]
shr edx, 8
or edx, ebx
mov ebx, dword [esp + 0x6c]
or ebx, edx
mov edx, dword [esp + 0x68]
shl edx, 8
or ebx, edx
mov edx, dword [esp + 0x64]
shl edx, 0x10
or edx, ebx
shl edi, 0x18
or edi, edx
mov dword [ecx + 0x70], edi
xor ebp, ebp
xor edi, edi
xor esi, esi
jmp 0x5e9106
cmp bp, 0xa
jne 0x5e97e0
cmp ebx, 4
jge 0x5e9550
mov ecx, dword [esp + 0x198]
movzx ebp, byte [esp + 0x37]
jmp 0x5e9106
nop
add ebx, 0xfffffffc
mov dword [esp + 0xac], ebx
mov ebx, dword [esp + 0x8c]
add ebx, 0xfffffff8
mov dword [esp + 0xb0], ebx
neg ebx
sar ebx, 0x1f
and ebx, 4
add edx, ebx
mov dword [esp + 0xa8], edx
jmp 0x5e9bc0
mov dword [esp + 0x98], edx
cmp bp, 0xd
je 0x5e96d8
cmp bp, 0x5455
jne 0x5e96cd
cmp ebx, 5
jge 0x5e95aa
mov edx, 1
jmp 0x5e95f1
mov ebp, dword [esp + 0x78]
mov edx, dword [esp + 0xa0]
movzx edx, byte [edx + ebp + 2]
dec ebx
mov dword [esp + 0xac], ebx
mov ebx, dword [esp + 0x8c]
add ebx, 0xfffffffb
mov dword [esp + 0xb0], ebx
neg ebx
sar ebx, 0x1f
and ebx, 1
mov ebp, dword [esp + 0x98]
add ebx, ebp
mov dword [esp + 0xa8], ebx
test dl, 1
sete dl
test dl, dl
je 0x5e9606
mov ecx, dword [esp + 0x198]
movzx ebp, byte [esp + 0x37]
jmp 0x5e9106
nop
mov edx, dword [esp + 0xac]
mov ebx, dword [esp + 0xa8]
mov ebp, dword [esp + 0xb0]
cmp edx, 3
jbe 0x5e9bb4
mov ecx, dword [ebx]
mov dword [esp + 0x7c], ecx
add ecx, 0x7791f700
mov dword [esp + 0x74], ecx
lea ecx, [edx - 4]
mov dword [esp + 0xac], ecx
lea ecx, [ebp - 4]
mov dword [esp + 0xb0], ecx
neg ecx
sar ecx, 0x1f
and ecx, 4
add ecx, ebx
mov dword [esp + 0xa8], ecx
lea edi, [esp + 0xcc]
call fcn.0045e87b
mov dword [esp + 0xd0], 0
mov ecx, dword [esp + 0x74]
mov dword [esp + 0xd4], ecx
mov ecx, dword [esp + 0x7c]
add ecx, 0x7791f700
adc eax, 0xe
mov dword [esp + 0xd8], eax
mov ecx, dword [0x7e9908]
mov dword [esp + 0xdc], ecx
lea edi, [esp + 0x16c]
lea esi, [esp + 0xcc]
call fcn.0045ed5e
xor eax, eax
mov ecx, dword [esp + 0x198]
movzx ebp, byte [esp + 0x37]
movzx edi, byte [esp + 0x39]
movzx esi, byte [esp + 0x38]
jmp 0x5e9106
cmp bp, 0x5855
jne 0x5e97e0
cmp ebx, 8
jge 0x5e96ee
mov ecx, dword [esp + 0x198]
movzx ebp, byte [esp + 0x37]
jmp 0x5e9106
nop
lea ebp, [ebx - 4]
mov dword [esp + 0xac], ebp
mov ebx, dword [esp + 0x8c]
add ebx, 0xfffffff8
mov dword [esp + 0xb0], ebx
neg ebx
sar ebx, 0x1f
and ebx, 4
add edx, ebx
mov dword [esp + 0xa8], edx
nop
nop
cmp ebp, 3
jbe 0x5e9ba8
mov ebp, ecx
mov ecx, dword [esp + 0x98]
mov ecx, dword [ecx + ebx]
mov dword [esp + 0x7c], ecx
add ecx, 0x7791f700
mov dword [esp + 0x74], ecx
mov ebx, dword [esp + 0x84]
add ebx, 0xfffffff8
mov dword [esp + 0xac], ebx
mov ebx, dword [esp + 0x8c]
add ebx, 0xfffffff4
mov dword [esp + 0xb0], ebx
neg ebx
sar ebx, 0x1f
and ebx, 4
add ebx, edx
mov dword [esp + 0xa8], ebx
mov edx, edi
lea edi, [esp + 0xf4]
call fcn.0045e87b
mov dword [esp + 0xf8], 0
mov ecx, dword [esp + 0x74]
mov dword [esp + 0xfc], ecx
mov ecx, dword [esp + 0x7c]
add ecx, 0x7791f700
adc eax, 0xe
mov dword [esp + 0x100], eax
mov ecx, dword [0x7e9908]
mov dword [esp + 0x104], ecx
lea edi, [esp + 0x16c]
lea esi, [esp + 0xf4]
call fcn.0045ed5e
xor eax, eax
mov ecx, dword [esp + 0x198]
mov edi, edx
movzx esi, byte [esp + 0x38]
jmp 0x5e9106
mov ecx, dword [esp + 0x198]
movzx ebp, byte [esp + 0x37]
jmp 0x5e9106
mov eax, dword [0x7ef5f0]
mov ecx, dword [0x7ef5f4]
mov dword [esp + 0x1a4], eax
mov dword [esp + 0x1a8], ecx
add esp, 0x194
ret
mov eax, dword [0x7ef5f0]
mov ecx, dword [0x7ef5f4]
mov dword [esp + 0x1a4], eax
mov dword [esp + 0x1a8], ecx
add esp, 0x194
ret
mov eax, dword [0x7ef5f0]
mov ecx, dword [0x7ef5f4]
mov dword [esp + 0x1a4], eax
mov dword [esp + 0x1a8], ecx
add esp, 0x194
ret
mov eax, dword [esp + 0x198]
movzx ecx, word [eax + 0x32]
movzx edx, word [eax + 0x30]
mov word [esp], cx
mov word [esp + 2], dx
call fcn.005ebd90
lea edi, [esp + 0x158]
lea esi, [esp + 4]
call fcn.0045ed5e
mov eax, dword [esp + 0x198]
lea edi, [eax + 0x1c]
mov dword [esp + 0x94], edi
mov ecx, dword [0x816df0]
test ecx, ecx
jne 0x5e98aa
lea esi, [esp + 0x158]
call fcn.0045ed5e
jmp 0x5e98ce
lea eax, [0x639de0]
mov dword [esp], eax
mov dword [esp + 4], edi
lea eax, [esp + 0x158]
mov dword [esp + 8], eax
call fcn.00410bf0
mov eax, dword [esp + 0x198]
lea edi, [esp + 0x130]
lea esi, [esp + 0x16c]
call fcn.0045ed5e
mov ecx, dword [esp + 0x130]
mov edx, dword [esp + 0x134]
test edx, 0x80000000
je 0x5e9923
shl edx, 1
mov ebx, ecx
shr ecx, 0x1f
or edx, ecx
mov ecx, ebx
shl ebx, 1
mov ebp, edx
shl edx, 1
shr ebx, 0x1f
or ebx, edx
mov edx, ebx
add ebx, 0xd7b17f80
shr ebp, 0x1f
add edx, 0xd7b17f80
adc ebp, 0xd
jmp 0x5e9931
mov ebx, dword [esp + 0x138]
mov ebp, dword [esp + 0x13c]
test ebp, ebp
sete dl
test ebx, ebx
sete bl
and ebx, edx
test bl, bl
je 0x5e994d
test ecx, 0x3fffffff
je 0x5e9b40
lea edi, [esp + 0x108]
lea esi, [esp + 0x16c]
call fcn.0045ed5e
nop
nop
mov ecx, dword [esp + 0x108]
mov edx, dword [esp + 0x10c]
test edx, 0x80000000
je 0x5e99c4
shl edx, 1
mov ebx, ecx
shr ecx, 0x1f
or ecx, edx
shl ebx, 1
mov edx, ecx
shl ecx, 1
shr ebx, 0x1f
or ebx, ecx
mov ecx, ebx
add ebx, 0xd7b17f80
mov dword [esp + 0x110], ebx
shr edx, 0x1f
add ecx, 0xd7b17f80
adc edx, 0xd
mov dword [esp + 0x114], edx
and dword [esp + 0x108], 0x3fffffff
mov dword [esp + 0x10c], 0
mov dword [esp + 0x118], 0
mov ecx, dword [0x816df0]
test ecx, ecx
jne 0x5e99ee
mov edi, dword [esp + 0x94]
lea esi, [esp + 0x108]
call fcn.0045ed5e
jmp 0x5e9a19
lea eax, [0x639de0]
mov dword [esp], eax
mov eax, dword [esp + 0x94]
mov dword [esp + 4], eax
lea ecx, [esp + 0x108]
mov dword [esp + 8], ecx
call fcn.00410bf0
mov eax, dword [esp + 0x198]
movzx ecx, word [eax + 0x30]
test cx, cx
jne 0x5e9a2f
movzx eax, word [eax + 0x32]
test ax, ax
je 0x5e9b40
lea edi, [esp]
lea esi, [esp + 0x158]
call fcn.0045ed5e
lea edi, [esp + 0x14]
lea esi, [esp + 0x16c]
call fcn.0045ed5e
call fcn.0049f6f0
mov eax, dword [esp + 0x28]
mov ecx, dword [esp + 0x2c]
mov dword [esp + 4], ecx
mov dword [esp], eax
call fcn.005ebbb0
mov eax, dword [esp + 8]
lea edi, [esp + 0x144]
lea esi, [esp + 0x16c]
call fcn.0045ed5e
test eax, eax
je 0x5e9b90
nop
lea ecx, [0x7ec960]
cmp eax, ecx
jne 0x5e9a93
xor eax, eax
nop
mov ecx, dword [esp + 0x144]
mov edx, dword [esp + 0x148]
test edx, 0x80000000
je 0x5e9af6
shl edx, 1
mov ebx, ecx
shr ecx, 0x1f
or ecx, edx
shl ebx, 1
mov edx, ecx
shl ecx, 1
shr ebx, 0x1f
or ebx, ecx
mov ecx, ebx
add ebx, 0xd7b17f80
mov dword [esp + 0x14c], ebx
shr edx, 0x1f
add ecx, 0xd7b17f80
adc edx, 0xd
mov dword [esp + 0x150], edx
and dword [esp + 0x144], 0x3fffffff
mov dword [esp + 0x148], 0
mov dword [esp + 0x154], eax
mov eax, dword [0x816df0]
test eax, eax
jne 0x5e9b1c
mov edi, dword [esp + 0x94]
lea esi, [esp + 0x144]
call fcn.0045ed5e
jmp 0x5e9b40
lea eax, [0x639de0]
mov dword [esp], eax
mov eax, dword [esp + 0x94]
mov dword [esp + 4], eax
lea eax, [esp + 0x144]
mov dword [esp + 8], eax
call fcn.00410bf0
movzx eax, byte [esp + 0x39]
test al, al
jne 0x5e9b52
movzx eax, byte [esp + 0x38]
test al, al
je 0x5e9b73
mov eax, dword [0x7ef5f0]
mov ecx, dword [0x7ef5f4]
mov dword [esp + 0x1a4], eax
mov dword [esp + 0x1a8], ecx
add esp, 0x194
ret
mov dword [esp + 0x1a4], 0
mov dword [esp + 0x1a8], 0
add esp, 0x194
ret
lea eax, [0x60d840]
mov dword [esp], eax
lea eax, [0x69dd48]
mov dword [esp + 4], eax
call fcn.004334d0
mov eax, 3
mov ecx, ebp
call fcn.0045e650
mov eax, 3
mov ecx, edx
call fcn.0045e650
mov edx, dword [esp + 0xa8]
mov ebx, dword [esp + 0xac]
mov ebp, dword [esp + 0xb0]
cmp ebx, 4
jl 0x5ea012
mov dword [esp + 0x8c], ebp
mov dword [esp + 0x88], ebx
mov dword [esp + 0xa0], edx
nop
nop
add ebx, 0xfffffffe
movzx edx, word [edx]
mov word [esp + 0x3a], dx
mov dword [esp + 0xac], ebx
lea edx, [ebp - 2]
mov dword [esp + 0xb0], edx
mov edx, dword [esp + 0xa0]
lea ebp, [edx + 2]
mov dword [esp + 0xa8], ebp
nop
nop
cmp ebx, 1
jbe 0x5ea023
mov ebx, dword [esp + 0x88]
lea ebp, [ebx - 4]
movzx ebx, word [edx + 2]
mov dword [esp + 0x84], ebx
mov dword [esp + 0xac], ebp
mov ebx, dword [esp + 0x8c]
add ebx, 0xfffffffc
mov dword [esp + 0xb0], ebx
neg ebx
sar ebx, 0x1f
and ebx, 2
mov dword [esp + 0x80], ebx
lea edx, [ebx + edx + 2]
mov dword [esp + 0xa8], edx
mov ebx, dword [esp + 0x84]
cmp ebx, ebp
jg 0x5ea001
nop
mov ebp, dword [esp + 0x88]
sub ebp, ebx
add ebp, 0xfffffffc
mov dword [esp + 0xac], ebp
mov ebp, dword [esp + 0x8c]
sub ebp, ebx
add ebp, 0xfffffffc
mov dword [esp + 0xb0], ebp
xchg ebp, ebx
neg ebx
xchg ebp, ebx
sar ebp, 0x1f
and ebp, ebx
add edx, ebp
mov dword [esp + 0xa8], edx
movzx edx, word [esp + 0x3a]
cmp dx, 1
jne 0x5e9bc0
cmp ebx, 0x18
jne 0x5e9bc0
nop
nop
mov eax, dword [esp + 0x80]
mov ecx, dword [esp + 0xa0]
movzx edx, byte [ecx + eax + 2]
movzx ebx, byte [ecx + eax + 3]
mov ebp, ebx
shr ebx, 0x18
movzx esi, byte [ecx + eax + 4]
mov edi, esi
shr esi, 0x10
or ebx, esi
movzx esi, byte [ecx + eax + 5]
mov dword [esp + 0x7c], esi
shr esi, 8
or ebx, esi
movzx esi, byte [ecx + eax + 6]
or esi, ebx
movzx ebx, byte [ecx + eax + 7]
shl ebx, 8
or ebx, esi
movzx esi, byte [ecx + eax + 8]
shl esi, 0x10
or esi, ebx
movzx eax, byte [ecx + eax + 9]
shl eax, 0x18
or eax, esi
mov dword [esp + 0x74], eax
mov dword [esp + 4], eax
shl ebp, 8
or edx, ebp
shl edi, 0x10
or edx, edi
mov ecx, dword [esp + 0x7c]
shl ecx, 0x18
or ecx, edx
mov dword [esp + 0x7c], ecx
mov dword [esp], ecx
mov dword [esp + 0xc], 0
mov dword [esp + 8], 0x989680
call fcn.00458480
mov eax, dword [esp + 0x10]
mov dword [esp + 0x3c], eax
mov ecx, dword [esp + 0x14]
mov dword [esp + 0x40], ecx
mov edx, dword [esp + 0x74]
mov dword [esp + 4], edx
mov edx, dword [esp + 0x7c]
mov dword [esp], edx
mov dword [esp + 0xc], 0
mov dword [esp + 8], 0x989680
call fcn.00458600
mov eax, dword [esp + 0x10]
mov ecx, eax
mov eax, 0x64
mul ecx
mov dword [esp + 0x7c], edx
mov dword [esp + 0x4c], eax
mov ecx, dword [esp + 0x14]
mov dword [esp + 0x74], ecx
mov ebx, dword [0x7e990c]
mov dword [esp], 0x641
mov dword [esp + 4], 1
mov dword [esp + 8], 1
mov dword [esp + 0xc], 0
mov dword [esp + 0x10], 0
mov dword [esp + 0x14], 0
mov dword [esp + 0x18], 0
mov dword [esp + 0x1c], ebx
call fcn.004a0a50
lea edi, [esp + 0x180]
lea esi, [esp + 0x20]
call fcn.0045ed5e
lea edi, [esp + 0x11c]
lea esi, [esp + 0x180]
call fcn.0045ed5e
mov eax, dword [esp + 0x74]
imul eax, eax, 0x64
mov ecx, dword [esp + 0x7c]
add eax, ecx
nop
mov ecx, dword [esp + 0x11c]
mov edx, dword [esp + 0x120]
test edx, 0x80000000
je 0x5e9e73
shl edx, 1
mov ebx, ecx
shr ecx, 0x1f
or edx, ecx
shl ebx, 1
mov ecx, edx
shl edx, 1
shr ebx, 0x1f
or ebx, edx
mov edx, ebx
add ebx, 0xd7b17f80
shr ecx, 0x1f
add edx, 0xd7b17f80
adc ecx, 0xd
jmp 0x5e9e81
mov ebx, dword [esp + 0x124]
mov ecx, dword [esp + 0x128]
mov edx, dword [esp + 0x3c]
mov ebp, ebx
add ebx, edx
mov esi, ebx
add ebx, 0x886e0900
mov dword [esp + 0x44], ebx
add ebp, edx
mov edx, dword [esp + 0x40]
adc ecx, edx
mov edx, esi
add esi, 0x886e0900
mov ebp, ecx
adc ecx, 0xfffffff1
mov dword [esp + 0x48], ecx
test eax, eax
mov esi, ebp
xchg ebp, ebx
setl bl
xchg ebp, ebx
mov edi, edx
mov edx, dword [esp + 0x4c]
cmp edx, 0x3b9aca00
setae cl
test eax, eax
sete dl
setg bl
and ecx, edx
or ebx, ecx
or ebp, ebx
xchg ebp, eax
test al, al
xchg ebp, eax
jne 0x5e9eed
mov edi, dword [esp + 0x4c]
mov ebx, dword [esp + 0x48]
mov esi, dword [esp + 0x44]
jmp 0x5e9f87
mov dword [esp + 0x7c], edi
mov dword [esp + 0x58], esi
mov dword [esp + 0x74], eax
mov dword [esp + 4], eax
mov ecx, dword [esp + 0x4c]
mov dword [esp], ecx
mov dword [esp + 0xc], 0
mov dword [esp + 8], 0x3b9aca00
call fcn.00458480
mov eax, dword [esp + 0x10]
mov ecx, dword [esp + 0x7c]
mov edx, eax
add eax, ecx
mov ebx, eax
add eax, 0x886e0900
mov dword [esp + 0x44], eax
mov eax, 0x3b9aca00
mov esi, edx
mul edx
mov edi, dword [esp + 0x4c]
sub edi, eax
mov ebp, dword [esp + 0x14]
add esi, ecx
mov ecx, dword [esp + 0x58]
adc ecx, ebp
mov esi, ebx
add ebx, 0x886e0900
mov ebx, ecx
adc ecx, 0xfffffff1
imul ebp, ebp, 0x3b9aca00
add edx, ebp
mov ebp, dword [esp + 0x4c]
sub ebp, eax
mov eax, dword [esp + 0x74]
sbb eax, edx
test eax, eax
jge 0x5e9f81
add edi, 0x3b9aca00
add esi, 0x886e08ff
adc ebx, 0xfffffff1
jmp 0x5e9f87
mov ebx, ecx
mov esi, dword [esp + 0x44]
mov dword [esp + 0x44], esi
add esi, 0x7791f700
xor eax, eax
mov edx, edi
lea edi, [esp + 0xe0]
call fcn.0045e87b
mov dword [esp + 0xe0], edx
sar edx, 0x1f
mov dword [esp + 0xe4], edx
mov dword [esp + 0xe8], esi
mov ecx, dword [esp + 0x44]
add ecx, 0x7791f700
adc ebx, 0xe
mov dword [esp + 0xec], ebx
mov ecx, dword [0x7e9908]
mov dword [esp + 0xf0], ecx
lea edi, [esp + 0x16c]
lea esi, [esp + 0xe0]
call fcn.0045ed5e
movzx ecx, byte [esp + 0x37]
movzx esi, byte [esp + 0x38]
movzx edi, byte [esp + 0x39]
jmp 0x5e9bc0
mov ecx, dword [esp + 0x198]
movzx ebp, byte [esp + 0x37]
jmp 0x5e9106
mov ecx, dword [esp + 0x198]
movzx ebp, byte [esp + 0x37]
jmp 0x5e9106
mov eax, 1
mov ecx, ebx
call fcn.0045e650
mov eax, 1
mov ecx, ebx
call fcn.0045e650
call fcn.0045e6b0
call fcn.0045e690
call fcn.0045e690
mov eax, 3
mov ecx, edx
call fcn.0045e650
mov eax, 3
mov ecx, edx
call fcn.0045e650
mov eax, 4
mov ecx, esi
call fcn.0045e6b0
mov eax, 1
mov ecx, esi
call fcn.0045e650
mov eax, 1
mov ecx, esi
call fcn.0045e650
mov eax, 1
call fcn.0045e650
mov eax, 3
mov ecx, esi
call fcn.0045e650
mov eax, 3
mov ecx, esi
call fcn.0045e650
mov eax, 3
call fcn.0045e650
mov eax, 1
call fcn.0045e650
mov eax, 1
call fcn.0045e650
mov eax, 1
call fcn.0045e650
mov eax, 1
call fcn.0045e650
mov eax, 1
call fcn.0045e650
nop
call fcn.0045d190
jmp fcn.005e8900