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

Disassembly:
mov ecx, dword fs:[0x14]
mov ecx, dword [ecx]
lea eax, [esp - 0x118]
cmp eax, dword [ecx + 8]
jbe 0x872e76
sub esp, 0x198
lea eax, [0x919000]
mov dword [esp], eax
call fcn.0040af00
mov eax, dword [esp + 4]
mov dword [esp + 0xa8], eax
mov ecx, dword [esp + 0x1a0]
mov dword [esp], ecx
mov edx, dword [esp + 0x1a4]
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.00464ae0
mov eax, dword [esp + 0x1c]
mov ecx, dword [esp + 0x20]
test eax, eax
jne 0x872d48
mov edx, dword [esp + 0xa8]
mov dword [esp + 0xc4], edx
mov dword [esp + 0xc8], 0x2e
mov dword [esp + 0xcc], 0x2e
mov edx, dword [esp + 0xc4]
mov ebx, dword [edx]
cmp ebx, 0x2014b50
mov dword [esp + 0xc8], 0x2a
mov dword [esp + 0xcc], 0x2a
lea ebp, [edx + 4]
mov dword [esp + 0xc4], ebp
cmp ebx, 0x2014b50
jne 0x872d27
nop
movzx ebx, word [edx + 4]
mov dword [esp + 0xc8], 0x28
mov dword [esp + 0xcc], 0x28
add edx, 6
mov dword [esp + 0xc4], edx
mov edx, dword [esp + 0x19c]
mov word [edx + 0x12], bx
mov ebx, dword [esp + 0xcc]
mov ecx, dword [esp + 0xc8]
mov ebp, dword [esp + 0xc4]
cmp ecx, 1
jbe 0x872e6b
lea esi, [ecx - 2]
movzx edi, word [ebp]
mov dword [esp + 0xc8], esi
add ebx, 0xfffffffe
mov dword [esp + 0xcc], ebx
neg ebx
sar ebx, 0x1f
and ebx, 2
add ebx, ebp
mov dword [esp + 0xc4], ebx
mov word [edx + 0x14], di
mov ebx, dword [esp + 0xcc]
mov ecx, dword [esp + 0xc8]
mov ebp, dword [esp + 0xc4]
cmp ecx, 1
jbe 0x872e61
lea esi, [ecx - 2]
movzx edi, word [ebp]
mov dword [esp + 0xc8], esi
add ebx, 0xfffffffe
mov dword [esp + 0xcc], ebx
neg ebx
sar ebx, 0x1f
and ebx, 2
add ebx, ebp
mov dword [esp + 0xc4], ebx
mov word [edx + 0x16], di
mov ebx, dword [esp + 0xcc]
mov ebp, dword [esp + 0xc4]
mov ecx, dword [esp + 0xc8]
cmp ecx, 1
jbe 0x872e57
lea esi, [ecx - 2]
movzx edi, word [ebp]
mov dword [esp + 0xc8], esi
add ebx, 0xfffffffe
mov dword [esp + 0xcc], ebx
neg ebx
sar ebx, 0x1f
and ebx, 2
add ebx, ebp
mov dword [esp + 0xc4], ebx
mov word [edx + 0x18], di
mov ebx, dword [esp + 0xcc]
mov ecx, dword [esp + 0xc8]
mov ebp, dword [esp + 0xc4]
cmp ecx, 1
jbe 0x872e4d
lea esi, [ecx - 2]
movzx edi, word [ebp]
mov dword [esp + 0xc8], esi
add ebx, 0xfffffffe
mov dword [esp + 0xcc], ebx
neg ebx
sar ebx, 0x1f
and ebx, 2
add ebx, ebp
mov dword [esp + 0xc4], ebx
mov word [edx + 0x30], di
mov ebx, dword [esp + 0xcc]
mov ecx, dword [esp + 0xc8]
mov ebp, dword [esp + 0xc4]
cmp ecx, 1
jbe 0x872e43
lea esi, [ecx - 2]
movzx edi, word [ebp]
mov dword [esp + 0xc8], esi
add ebx, 0xfffffffe
mov dword [esp + 0xcc], ebx
neg ebx
sar ebx, 0x1f
and ebx, 2
add ebx, ebp
mov dword [esp + 0xc4], ebx
mov word [edx + 0x32], di
mov ebx, dword [esp + 0xcc]
mov ecx, dword [esp + 0xc8]
mov ebp, dword [esp + 0xc4]
cmp ecx, 3
jbe 0x872e39
lea esi, [ecx - 4]
mov edi, dword [ebp]
mov dword [esp + 0xc8], esi
mov eax, ebx
add ebx, 0xfffffffc
mov dword [esp + 0xcc], ebx
neg ebx
sar ebx, 0x1f
and ebx, 4
mov dword [esp + 0x8c], ebx
add ebx, ebp
mov dword [esp + 0xc4], ebx
mov dword [edx + 0x34], edi
nop
cmp esi, 3
jbe 0x872e2d
mov dword [esp + 0xa4], ebx
lea esi, [ecx - 8]
mov edi, dword [esp + 0x8c]
mov ebp, dword [ebp + edi]
mov dword [esp + 0xc8], esi
lea edi, [eax - 8]
mov dword [esp + 0xcc], edi
xchg edi, ebx
neg ebx
xchg edi, ebx
sar edi, 0x1f
and edi, 4
add ebx, edi
mov dword [esp + 0xc4], ebx
mov dword [edx + 0x38], ebp
nop
cmp esi, 3
jbe 0x872e21
lea ebp, [ecx - 0xc]
mov esi, dword [esp + 0xa4]
mov esi, dword [esi + edi]
mov dword [esp + 0xc8], ebp
lea ebp, [eax - 0xc]
mov dword [esp + 0xcc], ebp
xchg ebp, ebx
neg ebx
xchg ebp, ebx
sar ebp, 0x1f
and ebp, 4
add ebx, ebp
mov dword [esp + 0xc4], 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 ebx, dword [esp + 0xc4]
mov ecx, dword [esp + 0xc8]
mov ebp, dword [esp + 0xcc]
cmp ecx, 1
jbe 0x872e17
lea esi, [ecx - 2]
movzx edi, word [ebx]
mov dword [esp + 0xc8], esi
mov eax, edi
lea edi, [ebp - 2]
mov dword [esp + 0xcc], edi
xchg edi, ebx
neg ebx
xchg edi, ebx
sar edi, 0x1f
and edi, 2
lea edx, [ebx + edi]
mov dword [esp + 0xc4], edx
nop
cmp esi, 1
jbe 0x872e0b
movzx ebx, word [ebx + edi]
mov dword [esp + 0x8c], ebx
lea esi, [ecx - 4]
mov dword [esp + 0xc8], esi
lea edi, [ebp - 4]
mov dword [esp + 0xcc], edi
xchg edi, ebx
neg ebx
xchg edi, ebx
sar edi, 0x1f
and edi, 2
lea ebx, [edi + edx]
mov dword [esp + 0xc4], ebx
nop
cmp esi, 1
jbe 0x872dff
movzx edx, word [edi + edx]
lea esi, [ecx - 6]
mov dword [esp + 0xc8], esi
lea edi, [ebp - 6]
mov dword [esp + 0xcc], edi
xchg edi, ebx
neg ebx
xchg edi, ebx
sar edi, 0x1f
and edi, 2
add ebx, edi
mov dword [esp + 0xc4], ebx
cmp esi, 4
jb 0x872df3
mov dword [esp + 0x88], edx
lea esi, [ebp - 0xa]
mov edi, esi
xchg esi, ebx
neg ebx
xchg esi, ebx
sar esi, 0x1f
and esi, 4
lea edx, [esi + ebx]
mov dword [esp + 0xa4], edx
mov dword [esp + 0xc4], edx
lea edx, [ecx - 0xa]
mov dword [esp + 0xc8], edx
mov dword [esp + 0xcc], edi
nop
cmp edx, 3
jbe 0x872de7
mov dword [esp + 0x54], ebp
lea edx, [ecx - 0xe]
mov ebx, dword [ebx + esi]
mov dword [esp + 0xc8], edx
lea esi, [ebp - 0xe]
mov dword [esp + 0xcc], esi
xchg esi, ebx
neg ebx
xchg esi, ebx
sar esi, 0x1f
and esi, 4
mov edi, dword [esp + 0xa4]
lea ebp, [edi + esi]
mov dword [esp + 0xa4], ebp
mov dword [esp + 0xc4], ebp
mov ebp, dword [esp + 0x19c]
mov dword [ebp + 0x5c], ebx
nop
cmp edx, 3
jbe 0x872ddb
mov dword [esp + 0x84], eax
add ecx, 0xffffffee
mov edx, dword [edi + esi]
mov dword [esp + 0xc8], ecx
mov ecx, dword [esp + 0x54]
add ecx, 0xffffffee
mov dword [esp + 0xcc], ecx
neg ecx
sar ecx, 0x1f
and ecx, 4
mov ebx, dword [esp + 0xa4]
add ecx, ebx
mov dword [esp + 0xc4], ecx
mov dword [ebp + 0x74], edx
mov dword [ebp + 0x78], 0
lea ecx, [0x92cb00]
mov dword [esp], ecx
mov ecx, dword [esp + 0x8c]
lea edx, [eax + ecx]
mov dword [esp + 0x80], edx
mov ebx, dword [esp + 0x88]
lea esi, [edx + ebx]
mov dword [esp + 0x50], esi
mov dword [esp + 4], esi
mov dword [esp + 8], esi
call fcn.00440170
mov eax, dword [esp + 0xc]
mov dword [esp + 0xa0], eax
mov ecx, dword [esp + 0x1a0]
mov dword [esp], ecx
mov ecx, dword [esp + 0x1a4]
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.00464ae0
mov eax, dword [esp + 0x1c]
mov ecx, dword [esp + 0x20]
test eax, eax
jne 0x872d12
mov ecx, dword [esp + 0x84]
mov edx, dword [esp + 0x50]
cmp ecx, edx
ja 0x872dd6
mov dword [esp], 0
mov eax, dword [esp + 0xa0]
mov dword [esp + 4], eax
mov dword [esp + 8], ecx
mov dword [esp + 0xc], edx
call fcn.004436f0
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x10]
mov edi, dword [esp + 0x19c]
mov dword [edi + 4], eax
mov eax, dword [0xe8ff30]
test eax, eax
jne 0x872d06
mov dword [edi], ecx
mov ecx, dword [esp + 0x80]
mov edx, dword [esp + 0x50]
cmp ecx, edx
ja 0x872dd1
mov eax, dword [esp + 0x84]
cmp eax, ecx
ja 0x872dcc
mov ebx, dword [esp + 0x8c]
mov dword [edi + 0x54], ebx
mov ebx, edx
sub edx, eax
mov dword [edi + 0x58], edx
mov ebp, dword [0xe8ff30]
neg edx
sar edx, 0x1f
and eax, edx
mov edx, dword [esp + 0xa0]
add eax, edx
test ebp, ebp
jne 0x872cf1
mov dword [edi + 0x50], eax
cmp ecx, ebx
ja 0x872dc3
mov dword [esp], 0
mov eax, dword [esp + 0x88]
mov ebx, eax
neg eax
sar eax, 0x1f
and ecx, eax
lea eax, [ecx + edx]
mov dword [esp + 4], eax
mov dword [esp + 8], ebx
mov dword [esp + 0xc], ebx
call fcn.004436f0
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x10]
mov edx, dword [esp + 0x19c]
mov dword [edx + 0xc], eax
mov eax, dword [0xe8ff30]
test eax, eax
jne 0x872ce2
mov dword [edx + 8], ecx
mov eax, dword [edx + 4]
mov ecx, dword [edx]
mov dword [esp], ecx
mov dword [esp + 4], eax
call fcn.00875170
movzx eax, byte [esp + 8]
mov byte [esp + 0x35], al
movzx ecx, byte [esp + 9]
mov byte [esp + 0x36], cl
mov edx, dword [esp + 0x19c]
mov ebx, dword [edx + 0xc]
mov ebp, dword [edx + 8]
mov dword [esp], ebp
mov dword [esp + 4], ebx
call fcn.00875170
movzx eax, byte [esp + 8]
movzx ecx, byte [esp + 9]
movzx edx, byte [esp + 0x35]
test dl, dl
je 0x872cd2
test al, al
je 0x872cd2
movzx ebx, byte [esp + 0x36]
test bl, bl
je 0x872cba
mov ecx, dword [esp + 0x19c]
movzx ebx, word [ecx + 0x16]
test bx, 0x800
sete bl
mov byte [ecx + 0x10], bl
mov ebx, dword [ecx + 0x78]
mov ebp, dword [ecx + 0x3c]
mov dword [esp + 0x7c], ebp
cmp ebp, 0xffffffff
mov eax, ebx
mov ebx, dword [ecx + 0x38]
cmp ebx, 0xffffffff
mov edx, ebx
mov ebx, dword [ecx + 0x74]
cmp ebx, 0xffffffff
lea edi, [esp + 0x134]
mov esi, eax
xor eax, eax
call fcn.00456d7b
mov ecx, dword [esp + 0x19c]
mov edi, ebx
mov ebx, dword [ecx + 0x54]
mov ebp, dword [ecx + 0x50]
mov ecx, dword [ecx + 0x58]
mov dword [esp + 0xb8], ebp
mov dword [esp + 0xbc], ebx
mov dword [esp + 0xc0], ecx
mov ecx, dword [esp + 0x7c]
cmp ecx, 0xffffffff
sete cl
cmp edx, 0xffffffff
sete bl
cmp edi, 0xffffffff
xchg ebp, ebx
sete bl
xchg ebp, ebx
test esi, esi
mov edx, ecx
sete cl
mov esi, ebx
lea ebx, [esp + 0x20]
mov dword [esp + 0x9c], ebx
and ecx, ebp
jmp 0x871bd7
mov edx, ebx
mov esi, ebp
mov ebx, edi
xchg esi, eax
mov byte [esp + 0x39], al
xchg esi, eax
mov byte [esp + 0x38], cl
mov ebp, dword [esp + 0xc0]
mov dword [esp + 0x8c], ebp
mov edi, ebx
mov ebx, dword [esp + 0xbc]
mov ebp, dword [esp + 0xb8]
cmp ebx, 4
jl 0x872921
mov dword [esp + 0x88], ebx
mov dword [esp + 0xa4], ebp
nop
nop
add ebx, 0xfffffffe
movzx ebp, word [ebp]
mov word [esp + 0x3a], bp
mov dword [esp + 0xbc], ebx
mov ebp, dword [esp + 0x8c]
add ebp, 0xfffffffe
mov dword [esp + 0xc0], ebp
mov ebp, dword [esp + 0xa4]
add ebp, 2
mov dword [esp + 0xb8], ebp
nop
nop
cmp ebx, 1
jbe 0x872db7
mov ebx, dword [esp + 0x88]
add ebx, 0xfffffffc
mov dword [esp + 0x88], ebx
mov ebp, dword [esp + 0xa4]
movzx ebp, word [ebp + 2]
mov dword [esp + 0x84], ebp
mov dword [esp + 0xbc], ebx
mov ebx, dword [esp + 0x8c]
add ebx, 0xfffffffc
mov dword [esp + 0x80], ebx
mov dword [esp + 0xc0], ebx
neg ebx
sar ebx, 0x1f
and ebx, 2
mov dword [esp + 0x78], ebx
mov ebp, dword [esp + 0xa4]
lea ebx, [ebp + ebx + 2]
mov dword [esp + 0x98], ebx
mov dword [esp + 0xb8], ebx
mov ebp, dword [esp + 0x88]
mov ebx, dword [esp + 0x84]
cmp ebp, ebx
jl 0x872921
mov ebp, dword [esp + 0x80]
cmp ebx, ebp
ja 0x872dae
mov ebp, dword [esp + 0x88]
sub ebp, ebx
mov dword [esp + 0xbc], ebp
mov ebp, dword [esp + 0x80]
sub ebp, ebx
mov dword [esp + 0xc0], ebp
xchg ebp, ebx
neg ebx
xchg ebp, ebx
sar ebp, 0x1f
and ebp, ebx
mov ebx, dword [esp + 0x98]
add ebp, ebx
mov dword [esp + 0xb8], ebp
mov dword [esp + 0xac], ebx
mov ebp, dword [esp + 0x84]
mov dword [esp + 0xb0], ebp
mov ebx, dword [esp + 0x80]
mov dword [esp + 0xb4], ebx
movzx ebx, word [esp + 0x3a]
cmp bx, 0xa
ja 0x87265a
cmp bx, 1
jne 0x8720f8
test dl, dl
je 0x8720ec
cmp ebp, 8
jl 0x8720cb
nop
lea ebx, [ebp - 8]
mov ebp, dword [esp + 0x78]
mov edx, ebx
mov ebx, dword [esp + 0xa4]
movzx ebx, byte [ebx + ebp + 5]
mov dword [esp + 0x7c], ebx
mov ebx, dword [esp + 0xa4]
movzx ebx, byte [ebx + ebp + 4]
mov dword [esp + 0x74], ebx
mov ebx, dword [esp + 0xa4]
movzx ebx, byte [ebx + ebp + 3]
mov dword [esp + 0x70], ebx
mov ebx, dword [esp + 0xa4]
movzx ebx, byte [ebx + ebp + 2]
mov dword [esp + 0x6c], ebx
mov ebx, dword [esp + 0xa4]
movzx ebx, byte [ebx + ebp + 8]
mov dword [esp + 0x68], ebx
mov ebx, dword [esp + 0xa4]
movzx ebx, byte [ebx + ebp + 7]
mov dword [esp + 0x64], ebx
mov ebx, dword [esp + 0xa4]
movzx ebx, byte [ebx + ebp + 6]
mov dword [esp + 0x60], ebx
mov ebx, dword [esp + 0xa4]
movzx ebx, byte [ebx + ebp + 9]
mov dword [esp + 0xb0], edx
mov ebp, dword [esp + 0x8c]
add ebp, 0xfffffff4
mov dword [esp + 0xb4], ebp
xchg ebp, ebx
neg ebx
xchg ebp, ebx
sar ebp, 0x1f
and ebp, 8
mov edx, ebx
mov ebx, dword [esp + 0x98]
add ebx, ebp
mov dword [esp + 0xac], ebx
mov ebx, dword [esp + 0x70]
shl ebx, 8
mov ebp, dword [esp + 0x6c]
or ebp, ebx
mov ebx, dword [esp + 0x74]
shl ebx, 0x10
or ebp, ebx
mov ebx, dword [esp + 0x7c]
shl ebx, 0x18
or ebp, ebx
mov ebx, dword [esp + 0x19c]
mov dword [ebx + 0x48], ebp
mov ebp, dword [esp + 0x70]
shr ebp, 0x18
mov ebx, dword [esp + 0x74]
shr ebx, 0x10
or ebx, ebp
mov ebp, dword [esp + 0x7c]
shr ebp, 8
or ebp, ebx
mov ebx, dword [esp + 0x60]
or ebx, ebp
mov ebp, dword [esp + 0x64]
shl ebp, 8
or ebp, ebx
mov ebx, dword [esp + 0x68]
shl ebx, 0x10
or ebx, ebp
shl edx, 0x18
or edx, ebx
mov ebx, dword [esp + 0x19c]
mov dword [ebx + 0x4c], edx
xchg esi, eax
test al, al
xchg esi, eax
je 0x8720c4
mov ebp, dword [esp + 0xb0]
mov edx, ebx
mov ebx, dword [esp + 0xac]
mov esi, ebx
mov ebx, dword [esp + 0xb4]
cmp ebp, 8
jl 0x8720a3
mov dword [esp + 0x8c], ebx
nop
add ebp, 0xfffffff8
movzx ebx, byte [esi]
mov dword [esp + 0x7c], ebx
movzx ebx, byte [esi + 3]
mov dword [esp + 0x74], ebx
movzx ebx, byte [esi + 2]
mov dword [esp + 0x70], ebx
movzx ebx, byte [esi + 1]
mov dword [esp + 0x6c], ebx
movzx ebx, byte [esi + 7]
mov dword [esp + 0x68], ebx
movzx ebx, byte [esi + 6]
mov dword [esp + 0x64], ebx
movzx ebx, byte [esi + 4]
mov dword [esp + 0x60], ebx
movzx ebx, byte [esi + 5]
mov dword [esp + 0x5c], ebx
mov dword [esp + 0xb0], ebp
mov ebp, dword [esp + 0x8c]
add ebp, 0xfffffff8
mov dword [esp + 0xb4], ebp
xchg ebp, ebx
neg ebx
xchg ebp, ebx
sar ebp, 0x1f
and ebp, 8
add ebp, esi
mov dword [esp + 0xac], ebp
mov ebp, dword [esp + 0x6c]
mov esi, ebp
shl ebp, 8
mov ebx, dword [esp + 0x7c]
or ebx, ebp
mov ebp, dword [esp + 0x70]
shl ebp, 0x10
or ebp, ebx
mov ebx, dword [esp + 0x74]
shl ebx, 0x18
or ebp, ebx
mov dword [edx + 0x40], ebp
mov ebx, dword [esp + 0x70]
shr ebx, 0x10
shr esi, 0x18
or esi, ebx
mov ebx, dword [esp + 0x74]
shr ebx, 8
or ebx, esi
mov ebp, dword [esp + 0x60]
or ebp, ebx
mov ebx, dword [esp + 0x5c]
shl ebx, 8
or ebx, ebp
mov ebp, dword [esp + 0x64]
shl ebp, 0x10
or ebx, ebp
mov ebp, dword [esp + 0x68]
shl ebp, 0x18
or ebx, ebp
mov dword [edx + 0x44], ebx
test cl, cl
je 0x872077
mov ebx, dword [esp + 0xb0]
mov ebp, dword [esp + 0xac]
mov ecx, ebp
mov ebp, dword [esp + 0xb4]
cmp ebx, 8
jl 0x872082
nop
add ebx, 0xfffffff8
mov esi, ebp
movzx ebp, byte [ecx + 3]
mov dword [esp + 0x7c], ebp
movzx ebp, byte [ecx + 2]
mov dword [esp + 0x74], ebp
movzx ebp, byte [ecx + 1]
mov dword [esp + 0x70], ebp
movzx ebp, byte [ecx]
mov dword [esp + 0x6c], ebp
movzx ebp, byte [ecx + 7]
mov dword [esp + 0x68], ebp
movzx ebp, byte [ecx + 6]
mov dword [esp + 0x64], ebp
movzx ebp, byte [ecx + 4]
mov dword [esp + 0x60], ebp
movzx ebp, byte [ecx + 5]
mov dword [esp + 0xb0], ebx
lea ebx, [esi - 8]
mov dword [esp + 0xb4], ebx
neg ebx
sar ebx, 0x1f
and ebx, 8
add ebx, ecx
mov dword [esp + 0xac], ebx
mov ebx, dword [esp + 0x70]
mov ecx, ebx
shl ebx, 8
mov esi, ebp
mov ebp, dword [esp + 0x6c]
or ebx, ebp
mov ebp, dword [esp + 0x74]
shl ebp, 0x10
or ebp, ebx
mov ebx, dword [esp + 0x7c]
shl ebx, 0x18
or ebp, ebx
mov dword [edx + 0x74], ebp
mov ebx, dword [esp + 0x74]
shr ebx, 0x10
shr ecx, 0x18
or ecx, ebx
mov ebx, dword [esp + 0x7c]
shr ebx, 8
or ebx, ecx
mov ebp, dword [esp + 0x60]
or ebp, ebx
shl esi, 8
or esi, ebp
mov ebx, dword [esp + 0x64]
shl ebx, 0x10
or esi, ebx
mov ebx, dword [esp + 0x68]
shl ebx, 0x18
or esi, ebx
mov dword [edx + 0x78], esi
xor ecx, ecx
xor ebx, ebx
xor ebp, ebp
jmp 0x871bd1
mov eax, dword [0xe7a598]
mov ecx, dword [0xe7a59c]
mov dword [esp + 0x1a8], eax
mov dword [esp + 0x1ac], ecx
add esp, 0x198
ret
mov eax, dword [0xe7a59c]
mov ecx, dword [0xe7a598]
mov dword [esp + 0x1a8], ecx
mov dword [esp + 0x1ac], eax
add esp, 0x198
ret
mov edx, ebx
jmp 0x871f91
mov eax, dword [0xe7a59c]
mov ecx, dword [0xe7a598]
mov dword [esp + 0x1a8], ecx
mov dword [esp + 0x1ac], eax
add esp, 0x198
ret
mov ebx, dword [esp + 0x19c]
jmp 0x871e91
cmp bx, 0xa
jne 0x87264a
cmp ebp, 4
jge 0x872117
mov ebx, edx
mov ebp, esi
mov edx, dword [esp + 0x19c]
jmp 0x871bd1
mov byte [esp + 0x37], dl
nop
lea ebx, [ebp - 4]
mov dword [esp + 0xb0], ebx
mov ebx, dword [esp + 0x8c]
add ebx, 0xfffffff8
mov dword [esp + 0xb4], ebx
neg ebx
sar ebx, 0x1f
and ebx, 4
mov ebp, dword [esp + 0x98]
add ebx, ebp
mov dword [esp + 0xac], ebx
mov ebx, dword [esp + 0xac]
mov dword [esp + 0xa4], ebx
mov ebp, dword [esp + 0xb0]
mov ebx, dword [esp + 0xb4]
cmp ebp, 4
jl 0x872637
mov dword [esp + 0x8c], ebp
mov dword [esp + 0x88], ebx
nop
nop
add ebp, 0xfffffffe
mov ebx, dword [esp + 0xa4]
movzx ebx, word [ebx]
mov word [esp + 0x3a], bx
cmp bx, 1
mov dword [esp + 0xb0], ebp
mov ebx, dword [esp + 0x88]
add ebx, 0xfffffffe
mov dword [esp + 0xb4], ebx
mov ebx, dword [esp + 0xa4]
add ebx, 2
mov dword [esp + 0xac], ebx
nop
nop
cmp ebp, 1
jbe 0x872da2
mov ebx, dword [esp + 0x8c]
add ebx, 0xfffffffc
mov dword [esp + 0x8c], ebx
mov ebp, dword [esp + 0xa4]
movzx ebp, word [ebp + 2]
mov dword [esp + 0x84], ebp
mov dword [esp + 0xb0], ebx
mov ebx, dword [esp + 0x88]
add ebx, 0xfffffffc
mov dword [esp + 0x88], ebx
mov dword [esp + 0xb4], ebx
neg ebx
sar ebx, 0x1f
and ebx, 2
mov dword [esp + 0x80], ebx
mov ebp, dword [esp + 0xa4]
lea ebx, [ebx + ebp + 2]
mov dword [esp + 0x98], ebx
mov dword [esp + 0xac], ebx
mov ebp, dword [esp + 0x8c]
mov ebx, dword [esp + 0x84]
cmp ebp, ebx
jl 0x872624
nop
mov ebp, dword [esp + 0x88]
cmp ebx, ebp
ja 0x872d99
mov ebp, dword [esp + 0x8c]
sub ebp, ebx
mov dword [esp + 0xb0], ebp
mov ebp, dword [esp + 0x88]
sub ebp, ebx
mov dword [esp + 0xb4], ebp
xchg ebp, ebx
neg ebx
xchg ebp, ebx
sar ebp, 0x1f
and ebp, ebx
mov ebx, dword [esp + 0x98]
add ebx, ebp
mov dword [esp + 0xac], ebx
movzx ebx, word [esp + 0x3a]
cmp bx, 1
jne 0x87214f
mov ebx, dword [esp + 0x84]
cmp ebx, 0x18
jne 0x87214f
nop
nop
cmp ebx, 7
jbe 0x872d8d
mov eax, dword [esp + 0x80]
mov ecx, dword [esp + 0xa4]
movzx edx, byte [ecx + eax + 5]
movzx ebx, byte [ecx + eax + 4]
movzx ebp, byte [ecx + eax + 3]
movzx esi, byte [ecx + eax + 2]
mov edi, ebp
shl ebp, 8
or esi, ebp
mov ebp, ebx
shl ebx, 0x10
or esi, ebx
mov ebx, edx
shl edx, 0x18
or esi, edx
mov dword [esp + 0x7c], esi
movzx edx, byte [ecx + eax + 8]
mov dword [esp + 0x74], edx
movzx edx, byte [ecx + eax + 7]
mov dword [esp + 0x70], edx
movzx edx, byte [ecx + eax + 6]
movzx eax, byte [ecx + eax + 9]
mov dword [esp], esi
shr edi, 0x18
shr ebp, 0x10
or ebp, edi
shr ebx, 8
or ebx, ebp
or edx, ebx
mov ecx, dword [esp + 0x70]
shl ecx, 8
or ecx, edx
mov edx, dword [esp + 0x74]
shl edx, 0x10
or edx, ecx
shl eax, 0x18
or eax, edx
mov dword [esp + 0x74], eax
mov dword [esp + 4], eax
mov dword [esp + 8], 0x989680
mov dword [esp + 0xc], 0
call fcn.00451690
mov eax, dword [esp + 0x14]
mov dword [esp + 0x40], eax
mov ecx, dword [esp + 0x10]
mov dword [esp + 0x3c], ecx
mov edx, dword [esp + 0x7c]
mov dword [esp], edx
mov edx, dword [esp + 0x74]
mov dword [esp + 4], edx
mov dword [esp + 8], 0x989680
mov dword [esp + 0xc], 0
call fcn.00451820
mov eax, dword [esp + 0x10]
mov ecx, 0x64
mul ecx
mov dword [esp + 0x7c], edx
mov dword [esp + 0x4c], eax
mov ebx, dword [esp + 0x14]
mov dword [esp + 0x58], ebx
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 ebp, dword [0xe70e94]
mov dword [esp + 0x1c], ebp
call fcn.004c0de0
lea edi, [esp + 0xe4]
mov esi, dword [esp + 0x9c]
call fcn.0045725e
mov eax, dword [esp + 0x58]
imul eax, eax, 0x64
mov ecx, dword [esp + 0x7c]
add eax, ecx
nop
mov ecx, dword [esp + 0xe8]
mov edx, dword [esp + 0xe4]
mov ebx, ecx
shr ecx, 0x1f
shl ecx, 0x1f
test ecx, ecx
je 0x872611
mov ecx, edx
shr edx, 0x1f
shl ebx, 1
or ebx, edx
mov ebp, ebx
shl ebx, 1
shl ecx, 1
shr ecx, 0x1f
or ecx, ebx
mov ebx, ecx
add ecx, 0xd7b17f80
shr ebp, 0x1f
add ebx, 0xd7b17f80
adc ebp, 0xd
mov ebx, dword [esp + 0x3c]
mov edx, ebx
add ebx, ecx
mov dword [esp + 0x7c], ebx
mov esi, ebx
add ebx, 0x886e0900
add edx, ecx
mov ecx, dword [esp + 0x40]
adc ebp, ecx
mov dword [esp + 0x58], ebp
add esi, 0x886e0900
adc ebp, 0xfffffff1
mov dword [esp + 0x48], ebp
test eax, eax
sete cl
mov edi, ebx
mov ebx, dword [esp + 0x4c]
test ebx, ebx
xchg ebp, ebx
setb bl
xchg ebp, ebx
test eax, eax
setl bl
and ebp, ecx
or ebx, ebp
test bl, bl
jne 0x87255d
test eax, eax
setg bl
mov ebp, dword [esp + 0x4c]
cmp ebp, 0x3b9aca00
xchg ebp, ebx
setae bl
xchg ebp, ebx
and ecx, ebp
or ecx, ebx
test cl, cl
jne 0x87255d
mov eax, dword [esp + 0x48]
mov ecx, dword [esp + 0x4c]
mov dword [esp + 0x4c], ecx
mov ebx, edi
add edi, 0x7791f700
mov edx, edi
lea edi, [esp + 0x184]
mov ebp, eax
xor eax, eax
call fcn.00456d7b
mov ecx, dword [esp + 0x4c]
mov dword [esp + 0x184], ecx
sar ecx, 0x1f
mov dword [esp + 0x188], ecx
mov dword [esp + 0x18c], edx
add ebx, 0x7791f700
adc ebp, 0xe
mov dword [esp + 0x190], ebp
mov ecx, dword [0xe70e90]
mov dword [esp + 0x194], ecx
lea edi, [esp + 0x134]
lea esi, [esp + 0x184]
call fcn.0045725e
movzx ecx, byte [esp + 0x38]
movzx edx, byte [esp + 0x37]
movzx esi, byte [esp + 0x39]
mov edi, dword [esp + 0x9c]
jmp 0x87214f
mov dword [esp + 0x74], eax
mov ecx, dword [esp + 0x4c]
mov dword [esp], ecx
mov dword [esp + 4], eax
mov dword [esp + 8], 0x3b9aca00
mov dword [esp + 0xc], 0
call fcn.00451690
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, edx
mov esi, 0x3b9aca00
mov edi, eax
mul esi
mov esi, dword [esp + 0x4c]
sub esi, eax
mov ebp, dword [esp + 0x14]
add edi, ecx
mov ecx, dword [esp + 0x58]
adc ecx, ebp
mov edi, 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 esi, esi
setb dl
test eax, eax
setl al
xchg ebp, ebx
sete bl
xchg ebp, ebx
and ebp, edx
or ebp, eax
xchg ebp, eax
test al, al
xchg ebp, eax
je 0x872609
add esi, 0x3b9aca00
add edi, 0x886e08ff
adc ebx, 0xfffffff1
mov eax, ebx
mov ecx, esi
jmp 0x8724d8
mov edi, dword [esp + 0x44]
mov ebx, ecx
jmp 0x872600
mov ecx, dword [esp + 0xec]
mov ebp, dword [esp + 0xf0]
jmp 0x87245c
mov edx, dword [esp + 0x19c]
movzx ebx, byte [esp + 0x37]
mov ebp, esi
jmp 0x871bd1
mov edx, dword [esp + 0x19c]
movzx ebx, byte [esp + 0x37]
mov ebp, esi
jmp 0x871bd1
mov ebx, edx
mov ebp, esi
mov edx, dword [esp + 0x19c]
jmp 0x871bd1
cmp bx, 0xd
jne 0x8727a1
cmp ebp, 8
jge 0x872679
mov ebx, edx
mov ebp, esi
mov edx, dword [esp + 0x19c]
jmp 0x871bd1
nop
lea ebx, [ebp - 4]
mov dword [esp + 0x88], ebx
mov dword [esp + 0xb0], ebx
mov ebp, dword [esp + 0x8c]
add ebp, 0xfffffff8
mov dword [esp + 0xb4], ebp
xchg ebp, ebx
neg ebx
xchg ebp, ebx
sar ebp, 0x1f
and ebp, 4
mov ebx, dword [esp + 0x98]
add ebx, ebp
mov dword [esp + 0xa4], ebx
mov dword [esp + 0xac], ebx
nop
nop
mov ebx, dword [esp + 0x88]
cmp ebx, 3
jbe 0x872d81
mov ebx, ecx
mov ecx, dword [esp + 0x98]
mov ecx, dword [ecx + ebp]
mov ebp, ecx
add ecx, 0x7791f700
mov dword [esp + 0x7c], ecx
mov ecx, dword [esp + 0x84]
add ecx, 0xfffffff8
mov dword [esp + 0xb0], ecx
mov ecx, dword [esp + 0x8c]
add ecx, 0xfffffff4
mov dword [esp + 0xb4], ecx
neg ecx
sar ecx, 0x1f
and ecx, 4
mov dword [esp + 0x8c], ecx
mov ecx, dword [esp + 0xa4]
mov edi, dword [esp + 0x8c]
add ecx, edi
mov dword [esp + 0xac], ecx
lea edi, [esp + 0x170]
call fcn.00456d7b
mov dword [esp + 0x174], 0
mov ecx, dword [esp + 0x7c]
mov dword [esp + 0x178], ecx
add ebp, 0x7791f700
adc eax, 0xe
mov dword [esp + 0x17c], eax
mov ecx, dword [0xe70e90]
mov dword [esp + 0x180], ecx
lea edi, [esp + 0x134]
lea esi, [esp + 0x170]
call fcn.0045725e
xor eax, eax
mov edi, dword [esp + 0x9c]
mov ecx, ebx
mov ebx, edx
movzx ebp, byte [esp + 0x39]
mov edx, dword [esp + 0x19c]
jmp 0x871bd1
cmp bx, 0x5455
jne 0x872911
cmp ebp, 5
jge 0x8728b0
mov ebx, 1
test bl, bl
je 0x8727ce
mov ebx, edx
mov ebp, esi
mov edx, dword [esp + 0x19c]
jmp 0x871bd1
nop
mov ebx, dword [esp + 0xac]
mov dword [esp + 0x90], ebx
mov ebp, dword [esp + 0xb0]
mov ebx, dword [esp + 0xb4]
cmp ebp, 3
jbe 0x872d75
mov ecx, dword [esp + 0x90]
mov ecx, dword [ecx]
mov dword [esp + 0x7c], ecx
add ecx, 0x7791f700
mov dword [esp + 0x74], ecx
lea ecx, [ebp - 4]
mov dword [esp + 0xb0], ecx
lea ecx, [ebx - 4]
mov dword [esp + 0xb4], ecx
neg ecx
sar ecx, 0x1f
and ecx, 4
mov ebx, ecx
mov ecx, dword [esp + 0x90]
add ecx, ebx
mov dword [esp + 0xac], ecx
lea edi, [esp + 0x15c]
call fcn.00456d7b
mov dword [esp + 0x160], 0
mov ecx, dword [esp + 0x74]
mov dword [esp + 0x164], ecx
mov ecx, dword [esp + 0x7c]
add ecx, 0x7791f700
adc eax, 0xe
mov dword [esp + 0x168], eax
mov ecx, dword [0xe70e90]
mov dword [esp + 0x16c], ecx
lea edi, [esp + 0x134]
lea esi, [esp + 0x15c]
call fcn.0045725e
xor eax, eax
mov edi, dword [esp + 0x9c]
movzx ecx, byte [esp + 0x38]
mov ebx, edx
movzx ebp, byte [esp + 0x39]
mov edx, dword [esp + 0x19c]
jmp 0x871bd1
mov ebx, ebp
mov ebp, dword [esp + 0x78]
mov edi, dword [esp + 0xa4]
movzx ebp, byte [edi + ebp + 2]
mov edi, ebp
lea ebp, [ebx - 1]
mov dword [esp + 0xb0], ebp
mov ebp, dword [esp + 0x8c]
add ebp, 0xfffffffb
mov dword [esp + 0xb4], ebp
xchg ebp, ebx
neg ebx
xchg ebp, ebx
sar ebp, 0x1f
and ebp, 1
mov ebx, ebp
mov ebp, dword [esp + 0x98]
add ebp, ebx
mov dword [esp + 0xac], ebp
xchg edi, eax
test al, 1
xchg edi, eax
sete bl
mov edi, dword [esp + 0x9c]
jmp 0x8727ba
cmp bx, 0x5855
je 0x872664
jmp 0x87264a
mov eax, dword [esp + 0x19c]
movzx ecx, word [eax + 0x32]
movzx edx, word [eax + 0x30]
mov word [esp], cx
mov word [esp + 2], dx
call fcn.00874b30
lea esi, [esp + 4]
mov dword [esp + 0x9c], esi
lea edi, [esp + 0x120]
call fcn.0045725e
mov eax, dword [esp + 0x19c]
lea edi, [eax + 0x1c]
mov dword [esp + 0x94], edi
mov ecx, dword [0xe8ff30]
test ecx, ecx
jne 0x872c7c
mov esi, dword [esp + 0x9c]
call fcn.0045725e
lea edi, [esp + 0x10c]
lea esi, [esp + 0x134]
call fcn.0045725e
mov ecx, dword [esp + 0x110]
mov edx, ecx
shr ecx, 0x1f
shl ecx, 0x1f
mov ebx, dword [esp + 0x10c]
test ecx, ecx
je 0x872c65
mov ecx, ebx
shr ebx, 0x1f
shl edx, 1
or edx, ebx
mov ebx, edx
shl edx, 1
mov ebp, ecx
shl ecx, 1
shr ecx, 0x1f
or ecx, edx
mov edx, ecx
add ecx, 0xd7b17f80
shr ebx, 0x1f
add edx, 0xd7b17f80
adc ebx, 0xd
test ecx, ecx
sete cl
test ebx, ebx
sete dl
and edx, ecx
test dl, dl
je 0x872c5e
test ebp, 0x3fffffff
sete cl
test cl, cl
je 0x872a4c
movzx eax, byte [esp + 0x39]
test al, al
je 0x872a26
mov eax, dword [0xe7a59c]
mov ecx, dword [0xe7a598]
mov dword [esp + 0x1a8], ecx
mov dword [esp + 0x1ac], eax
add esp, 0x198
ret
movzx eax, byte [esp + 0x38]
test al, al
jne 0x872a05
mov dword [esp + 0x1a8], 0
mov dword [esp + 0x1ac], 0
add esp, 0x198
ret
lea edi, [esp + 0xd0]
lea esi, [esp + 0x134]
call fcn.0045725e
nop
nop
mov ecx, dword [esp + 0xd0]
mov edx, dword [esp + 0xd4]
mov ebx, edx
shr edx, 0x1f
shl edx, 0x1f
test edx, edx
je 0x872ac7
mov edx, ecx
shr ecx, 0x1f
shl ebx, 1
or ebx, ecx
mov ecx, ebx
shl ebx, 1
shl edx, 1
shr edx, 0x1f
or edx, ebx
mov ebx, edx
add edx, 0xd7b17f80
mov dword [esp + 0xd8], edx
shr ecx, 0x1f
add ebx, 0xd7b17f80
adc ecx, 0xd
mov dword [esp + 0xdc], ecx
and dword [esp + 0xd0], 0x3fffffff
mov dword [esp + 0xd4], 0
mov dword [esp + 0xe0], 0
mov ecx, dword [0xe8ff30]
test ecx, ecx
jne 0x872c2e
mov edi, dword [esp + 0x94]
lea esi, [esp + 0xd0]
call fcn.0045725e
movzx ecx, word [eax + 0x30]
test cx, cx
je 0x872c1c
lea edi, [esp + 0xf8]
lea esi, [esp + 0x134]
call fcn.0045725e
mov edi, esp
lea esi, [esp + 0x120]
call fcn.0045725e
lea edi, [esp + 0x14]
lea esi, [esp + 0x134]
call fcn.0045725e
call fcn.004bf0c0
mov eax, dword [esp + 0x28]
mov ecx, dword [esp + 0x2c]
mov dword [esp], eax
mov dword [esp + 4], ecx
call fcn.00874900
mov eax, dword [esp + 8]
test eax, eax
je 0x872d5d
nop
lea ecx, [0xe754c0]
cmp eax, ecx
jne 0x872b63
xor eax, eax
nop
mov ecx, dword [esp + 0xf8]
mov edx, dword [esp + 0xfc]
mov ebx, edx
shr edx, 0x1f
shl edx, 0x1f
test edx, edx
je 0x872bca
mov edx, ecx
shr ecx, 0x1f
shl ebx, 1
or ebx, ecx
mov ecx, ebx
shl ebx, 1
shl edx, 1
shr edx, 0x1f
or edx, ebx
mov ebx, edx
add edx, 0xd7b17f80
mov dword [esp + 0x100], edx
shr ecx, 0x1f
add ebx, 0xd7b17f80
adc ecx, 0xd
mov dword [esp + 0x104], ecx
and dword [esp + 0xf8], 0x3fffffff
mov dword [esp + 0xfc], 0
mov dword [esp + 0x108], eax
mov eax, dword [0xe8ff30]
test eax, eax
jne 0x872bf3
mov edi, dword [esp + 0x94]
lea esi, [esp + 0xf8]
call fcn.0045725e
jmp 0x8729fc
lea eax, [0x9c4f60]
mov dword [esp], eax
mov eax, dword [esp + 0x94]
mov dword [esp + 4], eax
lea eax, [esp + 0xf8]
mov dword [esp + 8], eax
call fcn.00411120
jmp 0x8729fc
movzx eax, word [eax + 0x32]
test ax, ax
jne 0x872b00
jmp 0x8729fc
lea eax, [0x9c4f60]
mov dword [esp], eax
mov eax, dword [esp + 0x94]
mov dword [esp + 4], eax
lea ecx, [esp + 0xd0]
mov dword [esp + 8], ecx
call fcn.00411120
mov eax, dword [esp + 0x19c]
jmp 0x872af3
xor ecx, ecx
jmp 0x8729f8
mov ecx, dword [esp + 0x114]
mov edx, dword [esp + 0x118]
mov ebp, ebx
mov ebx, edx
jmp 0x8729db
mov eax, edi
lea edi, [esp + 0x148]
mov esi, dword [esp + 0x9c]
call fcn.0045725e
lea ecx, [0x9c4f60]
mov dword [esp], ecx
mov dword [esp + 4], eax
lea ecx, [esp + 0x148]
mov dword [esp + 8], ecx
call fcn.00411120
mov eax, dword [esp + 0x19c]
jmp 0x872980
test cl, cl
jne 0x871b35
mov ecx, dword [esp + 0x19c]
mov byte [ecx + 0x10], 0
jmp 0x871b4b
mov ecx, dword [esp + 0x19c]
mov byte [ecx + 0x10], 1
jmp 0x871b4b
lea edi, [edx + 8]
mov eax, ecx
call fcn.00456ab0
jmp 0x871acd
lea ebp, [edi + 0x50]
mov esi, edi
mov edi, ebp
call fcn.00456ab0
cmp ecx, ebx
mov edi, esi
jmp 0x871a79
mov eax, ecx
call fcn.00456ab0
jmp 0x871a23
mov dword [esp + 0x1a8], eax
mov dword [esp + 0x1ac], ecx
add esp, 0x198
ret
mov eax, dword [0xe7a59c]
mov ecx, dword [0xe7a598]
mov dword [esp + 0x1a8], ecx
mov dword [esp + 0x1ac], eax
add esp, 0x198
ret
mov dword [esp + 0x1a8], eax
mov dword [esp + 0x1ac], ecx
add esp, 0x198
ret
lea eax, [0x92c840]
mov dword [esp], eax
lea eax, [0xa9b0f8]
mov dword [esp + 4], eax
call fcn.0042cc50
mov eax, 3
mov ecx, ebp
call fcn.00456b30
mov eax, 3
mov ecx, ebx
call fcn.00456b30
mov eax, 7
mov ecx, ebx
call fcn.00456b30
mov ecx, ebx
mov edx, ebp
call fcn.00456b70
mov eax, 1
mov ecx, ebp
call fcn.00456b30
mov ecx, ebx
mov edx, ebp
call fcn.00456b70
mov eax, 1
mov ecx, ebx
call fcn.00456b30
mov eax, ecx
mov ecx, ebx
call fcn.00456b90
call fcn.00456b90
call fcn.00456b70
call fcn.00456b70
mov eax, 3
mov ecx, edx
call fcn.00456b30
mov eax, 3
mov ecx, edx
call fcn.00456b30
mov eax, 4
mov ecx, esi
call fcn.00456b90
mov eax, 1
mov ecx, esi
call fcn.00456b30
mov eax, 1
mov ecx, esi
call fcn.00456b30
mov eax, 1
call fcn.00456b30
mov eax, 3
mov ecx, esi
call fcn.00456b30
mov eax, 3
mov ecx, esi
call fcn.00456b30
mov eax, 3
call fcn.00456b30
mov eax, 1
call fcn.00456b30
mov eax, 1
call fcn.00456b30
mov eax, 1
call fcn.00456b30
mov eax, 1
call fcn.00456b30
mov eax, 1
call fcn.00456b30
nop
call fcn.00455270
jmp fcn.00871430