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

Disassembly:
push ebp
push edi
xor eax, eax
push esi
push ebx
mov ecx, 0x100
sub esp, 0x85c
lea edi, [esp + 0x450]
mov dword [esp + 0x48], 0
rep stosd dword es:[edi], eax
mov eax, dword [0x84da98]
mov edi, dword [0x7440bc]
mov dword [esp + 0x78], eax
mov eax, dword [0x84da9c]
mov dword [esp + 0x50], eax
mov eax, dword [0x7440b8]
dec eax
mov dword [esp + 0x70], eax
mov esi, dword [esp + 0x78]
cmp dword [esp + 0x48], esi
jge 0x41d1fa
mov eax, dword [esp + 0x50]
mov esi, dword [esp + 0x48]
xor ecx, ecx
mov ebx, dword [eax + esi*4]
mov eax, dword [ebx + 0x1c]
mov dword [esp + 0x60], eax
cmp ecx, dword [esp + 0x60]
jge 0x41d1f4
mov eax, dword [ebx + 0x18]
mov eax, dword [eax + ecx*4]
mov esi, dword [eax + 4]
test esi, esi
je 0x41d1f1
cmp dword [esi + 8], 0
jns 0x41d1f1
cmp dword [ebx + 0x14], 1
jne 0x41d1f1
mov eax, dword [esp + 0x70]
test eax, eax
js 0x41d1ee
mov ebp, dword [ebx + 0x10]
mov edx, dword [edi + eax*4]
mov ebp, dword [ebp]
cmp dword [ebp + 4], edx
je 0x41d1ee
dec eax
jmp 0x41d1d9
mov dword [esi + 8], eax
inc ecx
jmp 0x41d1b6
inc dword [esp + 0x48]
jmp 0x41d198
xor ebx, ebx
cmp ebx, dword [0x7440b0]
jge 0x41d237
mov eax, dword [0x7440b4]
xor ebp, ebp
mov esi, dword [eax + ebx*4]
cmp dword [esi + 0x60], 0
jne 0x41d217
inc ebx
jmp 0x41d1fc
cmp ebp, dword [esi + 0x58]
jge 0x41d214
mov edx, dword [esi + 0xc]
mov eax, dword [0x7440bc]
add edx, ebp
inc ebp
mov edi, dword [eax + edx*4]
call fcn.00651226
mov dword [edi + 0x28], eax
mov dword [edi + 0x2c], edx
jmp 0x41d217
xor edi, edi
cmp edi, dword [0x7440b8]
jge 0x41d507
mov eax, dword [0x7440bc]
mov ebx, dword [eax + edi*4]
cmp dword [ebx + 0x10], 0
je 0x41d4e5
mov eax, dword [ebx + 0x18]
test eax, eax
mov dword [esp + 0x48], eax
mov eax, dword [ebx + 0x14]
jne 0x41d2ac
mov edx, dword [ebx + 4]
mov eax, dword [eax + 0x10]
mov ebp, 0xffffffea
mov ebx, dword [ebx]
mov esi, dword [edx]
mov dword [esp], eax
call fcn.004c584b
mov dword [esp + 0xc], eax
lea eax, [esp + 0x450]
mov dword [esp + 0x10], ebx
mov dword [esp + 0x14], esi
mov dword [esp + 8], 0x6c16c5
mov dword [esp + 4], 0x400
mov dword [esp], eax
call fcn.004146f5
jmp 0x41fedc
mov dword [eax + 0x20], ebx
mov dword [eax + 0x78], 0x411e2a
lea esi, [ebx + 0x8c]
mov dword [eax + 0x190], 0x411deb
mov dword [eax + 0x2bc], 1
mov dword [esp + 0x10], 0
mov dword [esp + 8], 1
mov dword [esp + 0xc], 0
mov dword [esp + 4], 0x6c16fa
mov dword [esp], eax
call fcn.0064a1e5
mov eax, dword [ebx + 0x14]
cmp dword [eax + 0x10], 0x17001
jne 0x41d34c
test byte [ebx + 0x10], 1
je 0x41d34c
mov dword [esp + 0xc], 0x10
mov dword [esp + 8], 0x6c170c
mov dword [esp + 4], 0x6c170e
mov dword [esp], esi
call fcn.006404e4
test byte [ebx + 0x10], 2
je 0x41d34c
mov dword [esp + 8], 0x6c171a
mov dword [esp + 4], 0x18
mov dword [esp], 0
call fcn.00647705
mov dword [esp + 0xc], 0x10
mov dword [esp + 8], 0x6c1795
mov dword [esp + 4], 0x6c1799
mov dword [esp], esi
call fcn.006404e4
mov eax, dword [ebx + 4]
mov ecx, dword [ebx + 0x14]
mov edx, dword [eax + 0x14]
mov eax, dword [eax + 0x10]
mov dword [ecx + 0x308], edx
mov dword [ecx + 0x304], eax
mov dword [esp + 0xc], 0
mov dword [esp + 8], 0
mov dword [esp + 4], 0x6c0e7a
mov eax, dword [ebx + 0x8c]
mov dword [esp], eax
call fcn.006403ef
test eax, eax
jne 0x41d3ce
mov dword [esp + 0xc], 0
mov dword [esp + 8], 0x6c0e82
mov dword [esp + 4], 0x6c0e7a
mov dword [esp], esi
call fcn.006404e4
mov eax, dword [ebx + 4]
test byte [eax + 0x31], 4
je 0x41d3f7
mov dword [esp + 0xc], 0
mov dword [esp + 8], 0x6c170c
mov dword [esp + 4], 0x6c0e7a
mov dword [esp], esi
call fcn.006404e4
mov dword [esp], ebx
call fcn.0040f453
test eax, eax
mov ebp, eax
jns 0x41d44d
lea edi, [esp + 0x388]
xor eax, eax
mov ecx, 0x10
lea esi, [esp + 0x388]
rep stosd dword es:[edi], eax
mov dword [esp + 8], 0x40
mov dword [esp + 4], esi
mov dword [esp], ebp
call fcn.00641482
mov dword [esp + 0x14], esi
mov eax, dword [ebx + 4]
mov eax, dword [eax]
mov dword [esp + 0x10], eax
mov eax, dword [ebx]
mov dword [esp + 8], 0x6c17a9
mov dword [esp + 0xc], eax
jmp 0x41d4bb
mov eax, dword [esp + 0x48]
mov dword [esp + 8], esi
mov dword [esp + 4], eax
mov eax, dword [ebx + 0x14]
mov dword [esp], eax
call fcn.004c6d54
test eax, eax
mov ebp, eax
jns 0x41d4d7
cmp eax, 0xd44d5058
je 0x41dad0
lea edi, [esp + 0x3c8]
xor eax, eax
mov ecx, 0x10
lea esi, [esp + 0x3c8]
rep stosd dword es:[edi], eax
mov dword [esp + 8], 0x40
mov dword [esp + 4], esi
mov dword [esp], ebp
call fcn.00641482
mov dword [esp + 0x14], esi
mov eax, dword [ebx + 4]
mov eax, dword [eax]
mov dword [esp + 0x10], eax
mov eax, dword [ebx]
mov dword [esp + 8], 0x6c17e5
mov dword [esp + 0xc], eax
lea eax, [esp + 0x450]
mov dword [esp + 4], 0x400
mov dword [esp], eax
call fcn.004146f5
jmp 0x41fedc
mov eax, dword [ebx + 0x8c]
mov dword [esp], eax
call fcn.004190e5
mov dword [ebx + 0x40], 0
mov dword [ebx + 0x44], 0x80000000
inc edi
mov dword [ebx + 0x30], 0
mov dword [ebx + 0x34], 0x80000000
jmp 0x41d239
xor ebx, ebx
xor ebp, ebp
cmp ebx, dword [0x7440a8]
jge 0x41d53d
mov eax, dword [0x7440ac]
mov eax, dword [eax + ebx*4]
cmp dword [eax + 0x108], 0
jne 0x41d53a
lea edx, [esp + 0x450]
call fcn.00419142
test eax, eax
mov ebp, eax
js 0x41d616
inc ebx
jmp 0x41d50b
mov eax, dword [0x7440b0]
mov dword [esp + 0x48], 0
mov dword [esp + 0x80], eax
mov eax, dword [0x7440b4]
mov dword [esp + 0x70], eax
mov eax, dword [0x7440bc]
mov dword [esp + 0x60], eax
mov edi, dword [esp + 0x80]
cmp dword [esp + 0x48], edi
jge 0x41d5e3
mov edi, dword [esp + 0x48]
mov eax, dword [esp + 0x70]
mov eax, dword [eax + edi*4]
mov edi, dword [eax]
mov dword [esp + 0x50], eax
mov eax, dword [edi + 0x468]
mov dword [esp + 0x78], eax
xor eax, eax
cmp dword [esp + 0x78], eax
je 0x41d5dd
mov edx, dword [edi + 0x46c]
mov ecx, dword [edx + eax*4]
xor edx, edx
mov ebx, dword [ecx + 0x10]
mov dword [esp + 0x88], ebx
cmp edx, dword [esp + 0x88]
je 0x41d5ce
mov esi, dword [esp + 0x50]
mov ebx, dword [ecx + 0xc]
mov ebx, dword [ebx + edx*4]
add ebx, dword [esi + 0xc]
mov esi, dword [esp + 0x60]
mov ebx, dword [esi + ebx*4]
cmp dword [ebx + 8], 0
je 0x41d5d5
inc edx
jmp 0x41d5a8
mov edx, 0x30
jmp 0x41d5d7
xor edx, edx
mov dword [ecx + 8], edx
inc eax
jmp 0x41d58d
inc dword [esp + 0x48]
jmp 0x41d563
xor ebx, ebx
cmp ebx, dword [0x7440a0]
jge 0x41d616
mov eax, dword [0x7440a4]
mov eax, dword [eax + ebx*4]
mov edx, dword [eax]
mov ecx, dword [edx + 8]
test byte [ecx + 0x1d], 0x10
je 0x41d613
cmp dword [edx + 0x18], 0
jne 0x41d613
mov edx, ebx
call fcn.00415fb7
test eax, eax
mov ebp, eax
js 0x41d616
inc ebx
jmp 0x41d5e5
mov dword [esp + 8], 0x6c181e
mov dword [esp + 4], 0x20
xor edi, edi
mov dword [esp], 0
call fcn.00647705
cmp edi, dword [0x7440b8]
jge 0x41d730
mov eax, dword [0x7440bc]
xor esi, esi
mov ebx, dword [eax + edi*4]
cmp esi, dword [ebx + 0xf8]
jge 0x41d72a
lea eax, [esi*4]
mov dword [esp + 0x48], eax
mov eax, dword [ebx + 0xf4]
mov eax, dword [eax + esi*4]
mov eax, dword [eax + 8]
mov dword [esp], eax
call fcn.0040edc0
test eax, eax
jne 0x41d724
mov eax, dword [ebx + 0xf4]
mov edx, dword [ebx + 0x18]
mov eax, dword [eax + esi*4]
test edx, edx
mov ecx, dword [eax + 0xc]
mov eax, 0x6c16b0
je 0x41d697
mov eax, dword [edx]
mov dword [esp + 0x18], ecx
mov dword [esp + 0x14], eax
mov eax, dword [ebx + 4]
mov eax, dword [eax]
mov dword [esp + 0x10], eax
mov eax, dword [ebx]
mov dword [esp + 8], 0x6c182f
mov dword [esp + 4], 0x20
mov dword [esp], 0
mov dword [esp + 0xc], eax
call fcn.00647705
cmp dword [0x84da98], 1
jle 0x41d708
mov eax, dword [ebx + 0xf4]
lea ecx, [esi*4]
mov eax, dword [eax + ecx]
mov eax, dword [eax + 8]
mov eax, dword [eax]
mov dword [esp + 8], 0x6c184a
mov dword [esp + 4], 0x20
mov dword [esp], 0
mov dword [esp + 0xc], eax
call fcn.00647705
mov dword [esp + 8], 0x6bfe41
mov dword [esp + 4], 0x20
mov dword [esp], 0
call fcn.00647705
inc esi
jmp 0x41d64a
inc edi
jmp 0x41d634
xor esi, esi
cmp esi, dword [0x7440a8]
jge 0x41d9d4
mov eax, dword [0x7440ac]
mov ebx, dword [eax + esi*4]
mov eax, dword [ebx + 0x140]
test eax, eax
je 0x41d76e
mov edx, dword [ebx + 4]
mov dword [esp + 0x14], edx
mov edx, dword [ebx]
mov dword [esp + 0xc], eax
mov dword [esp + 8], 0x6c1856
mov dword [esp + 0x10], edx
jmp 0x41d813
mov eax, dword [ebx + 0x108]
test eax, eax
je 0x41d82c
mov eax, dword [eax + 8]
mov dword [esp], eax
call fcn.0040edc0
test eax, eax
jne 0x41d82c
mov eax, dword [ebx + 0x108]
mov eax, dword [eax + 0xc]
mov dword [esp + 8], 0x6c1872
mov dword [esp + 4], 0x20
mov dword [esp], 0
mov dword [esp + 0xc], eax
call fcn.00647705
cmp dword [0x84da98], 1
jle 0x41d7ec
mov eax, dword [ebx + 0x108]
mov eax, dword [eax + 8]
mov eax, dword [eax]
mov dword [esp + 8], 0x6c184a
mov dword [esp + 4], 0x20
mov dword [esp], 0
mov dword [esp + 0xc], eax
call fcn.00647705
mov edx, dword [ebx + 0x58]
mov eax, 0x6c16b0
test edx, edx
je 0x41d7fa
mov eax, dword [edx]
mov dword [esp + 0x14], eax
mov eax, dword [ebx + 4]
mov dword [esp + 0x10], eax
mov eax, dword [ebx]
mov dword [esp + 8], 0x6c1877
mov dword [esp + 0xc], eax
mov dword [esp + 4], 0x20
mov dword [esp], 0
call fcn.00647705
jmp 0x41d9ce
mov edx, dword [ebx + 8]
mov eax, dword [0x7440bc]
mov eax, dword [eax + edx*4]
mov edx, dword [ebx + 4]
mov dword [esp + 0x18], edx
mov edx, dword [ebx]
mov dword [esp + 0x14], edx
mov edx, dword [eax + 4]
mov edx, dword [edx]
mov dword [esp + 0x10], edx
mov eax, dword [eax]
mov dword [esp + 8], 0x6c188f
mov dword [esp + 4], 0x20
mov dword [esp], 0
mov dword [esp + 0xc], eax
call fcn.00647705
mov ecx, dword [ebx + 8]
mov edx, dword [0x7440bc]
mov eax, dword [ebx + 0x18]
cmp eax, dword [edx + ecx*4]
je 0x41d8ab
mov edx, dword [eax + 4]
mov edx, dword [edx]
mov dword [esp + 0x10], edx
mov eax, dword [eax]
mov dword [esp + 8], 0x6c18a9
mov dword [esp + 4], 0x20
mov dword [esp], 0
mov dword [esp + 0xc], eax
call fcn.00647705
cmp dword [ebx + 0x134], 0
je 0x41d8d5
mov dword [esp + 8], 0x6c18b8
mov dword [esp + 4], 0x20
mov dword [esp], 0
call fcn.00647705
jmp 0x41d9b2
mov edx, dword [ebx + 8]
mov eax, dword [0x7440bc]
mov eax, dword [eax + edx*4]
mov edx, dword [ebx + 0x58]
mov eax, dword [eax + 0x18]
test eax, eax
je 0x41d92b
mov ebx, dword [eax]
mov eax, dword [eax + 0xc]
mov edi, 0x6c16b0
mov dword [esp + 0x48], edx
mov dword [esp], eax
call fcn.0047e47c
test eax, eax
mov edx, dword [esp + 0x48]
je 0x41d90b
mov edi, dword [eax + 8]
mov dword [esp], ebx
mov dword [esp + 4], edi
mov dword [esp + 0x48], edx
call fcn.00697ef7
test eax, eax
mov eax, 0x6c16b2
mov edx, dword [esp + 0x48]
cmove ebx, eax
jmp 0x41d932
mov edi, 0x6c16b0
mov ebx, edi
test edx, edx
je 0x41d97f
mov eax, dword [edx + 0xc]
mov ecx, dword [edx]
mov dword [esp], eax
mov dword [esp + 0x48], ecx
call fcn.0047e47c
test eax, eax
mov edx, 0x6c16b0
mov ecx, dword [esp + 0x48]
je 0x41d957
mov edx, dword [eax + 8]
mov dword [esp + 4], edx
mov dword [esp], ecx
mov dword [esp + 0x50], edx
mov dword [esp + 0x48], ecx
call fcn.00697ef7
mov ecx, dword [esp + 0x48]
test eax, eax
mov eax, 0x6c16b2
mov edx, dword [esp + 0x50]
cmove ecx, eax
jmp 0x41d986
mov edx, 0x6c16b0
mov ecx, edx
mov dword [esp + 0x18], ecx
mov dword [esp + 0x14], edx
mov dword [esp + 0x10], ebx
mov dword [esp + 0xc], edi
mov dword [esp + 8], 0x6c18c0
mov dword [esp + 4], 0x20
mov dword [esp], 0
call fcn.00647705
mov dword [esp + 8], 0x6bfe41
mov dword [esp + 4], 0x20
mov dword [esp], 0
call fcn.00647705
inc esi
jmp 0x41d732
test ebp, ebp
je 0x41da08
lea eax, [esp + 0x450]
mov dword [esp + 8], 0x6c18d6
mov dword [esp + 4], 0x10
mov dword [esp], 0
mov dword [esp + 0xc], eax
call fcn.00647705
test ebp, ebp
jns 0x41da13
jmp 0x41fdc8
mov eax, 1
xchg dword [0x7441c8], eax
cmp dword [0x6b5010], 0
je 0x41da38
mov dword [esp + 8], 0x6c18da
mov dword [esp + 4], 0x20
mov dword [esp], 0
call fcn.00647705
call fcn.00651226
xor ebx, ebx
mov dword [esp + 0xa8], eax
mov dword [esp + 0xac], edx
cmp ebx, dword [0x7440b0]
jge 0x41dc59
mov eax, ebx
call fcn.0041560d
test eax, eax
mov ebp, eax
js 0x41fdc8
inc ebx
jmp 0x41da4d
cmp dword [ebp + 0x138], 0
jne 0x41dd89
lea edi, [esp + 0x450]
lea ebx, [esp + 0x450]
xor eax, eax
mov ecx, 0x100
rep stosd dword es:[edi], eax
mov edx, ebx
mov eax, ebp
call fcn.00419142
test eax, eax
jns 0x41dd89
mov dword [esp + 0x14], ebx
mov eax, dword [ebp + 4]
mov dword [esp + 0x10], eax
mov eax, dword [ebp]
mov dword [esp + 0xc], eax
mov dword [esp + 8], 0x6c1135
mov dword [esp + 4], 0x10
mov dword [esp], 0
call fcn.00647705
mov dword [esp], 1
call fcn.00410a8a
call fcn.00651226
cmp dword [0x6b5010], 0
mov dword [esp + 0x80], eax
mov dword [esp + 0x84], edx
jne 0x41dc6f
xor edi, edi
cmp edi, dword [0x7440a8]
jge 0x41f803
mov eax, dword [0x7440ac]
mov ebx, dword [eax + edi*4]
cmp dword [ebx + 0x12c], 0
jne 0x41dcb4
mov eax, dword [0x7440a4]
mov edx, dword [ebx]
mov esi, dword [eax + edx*4]
mov eax, dword [esi]
mov eax, dword [eax + 0x10]
test eax, eax
jne 0x41dc8f
mov ecx, dword [ebx + 0x14]
mov eax, ecx
cdq
cmp edx, dword [ebx + 0x64]
jge 0x41dcba
mov dword [esp + 0x48], 0
or edi, 0xffffffff
mov ebx, 0x7fffffff
xor esi, esi
mov edx, dword [0x7440a8]
cmp esi, edx
jge 0x41dd2f
mov eax, dword [0x7440ac]
mov ebp, dword [eax + esi*4]
mov eax, dword [ebp + 0xc]
mov edx, dword [eax + 0xcc]
mov ecx, dword [eax + 0xc8]
mov dword [esp + 0x50], edx
add edx, 0x80000000
or edx, ecx
je 0x41ff00
mov dword [esp + 0x10], 1
mov dword [esp + 0x14], 0xf4240
mov edx, dword [eax + 0x14]
mov eax, dword [eax + 0x10]
mov dword [esp], ecx
mov dword [esp + 8], eax
mov eax, dword [esp + 0x50]
mov dword [esp + 0xc], edx
mov dword [esp + 4], eax
call fcn.00647ec6
cmp dword [ebp + 0x138], 0
jne 0x41dcf5
cmp dword [ebp + 0x13c], 0
jne 0x41dcf5
mov eax, dword [ebp + 0x108]
test eax, eax
je 0x41dd5e
mov ebx, dword [eax + 8]
cmp dword [ebx + 8], 0
jne 0x41dd5e
mov eax, ebx
call fcn.0041435a
test eax, eax
je 0x41dd5e
mov dword [esp], ebx
call fcn.0040d9d9
test eax, eax
mov ebx, eax
jns 0x41dd5e
mov dword [esp + 8], 0x6c1312
mov dword [esp + 4], 0x10
mov dword [esp], 0
call fcn.00647705
mov dword [esp + 0x70], ebx
mov eax, dword [esp + 0x70]
shr eax, 0x1f
jne 0x41f70b
cmp dword [0x6b5014], 0
jne 0x41f76d
cmp dword [0x7440c0], 0
jne 0x41f76d
mov eax, dword [0x7441d0]
test eax, eax
mov dword [esp + 0x70], eax
je 0x41dadc
jmp 0x41f81f
mov eax, dword [esp + 0x80]
mov edx, dword [esp + 0x84]
call fcn.00414e2b
test eax, eax
jns 0x41dafc
jmp 0x41f81f
mov dword [esp + 0xc], 1
mov dword [esp + 4], 0
mov dword [esp + 8], 0
mov dword [esp], eax
call fcn.00434123
cmp edx, dword [esi + 0x24]
jbe 0x41dcc9
inc edi
jmp 0x41dafe
jg 0x41dcc5
cmp ecx, dword [ebx + 0x60]
jb 0x41db45
xor ebx, ebx
jmp 0x41dcd9
jb 0x41db36
cmp eax, dword [esi + 0x20]
jae 0x41dcb4
jmp 0x41db36
mov eax, dword [esi]
cmp dword [eax + 0x18], ebx
jbe 0x41dcb4
mov edx, dword [esi + 8]
mov eax, dword [0x7440ac]
add edx, ebx
inc ebx
mov eax, dword [eax + edx*4]
call fcn.00414406
jmp 0x41dcd9
cmp dword [ebp + 0x12c], 0
jne 0x41dd19
cmp ebx, edx
jg 0x41dd08
jl 0x41dd19
cmp edi, eax
jbe 0x41dd19
cmp dword [ebp + 0x130], 0
mov ecx, 0
cmovne ebp, ecx
jmp 0x41dd21
mov ebp, dword [esp + 0x48]
mov eax, edi
mov edx, ebx
inc esi
mov dword [esp + 0x48], ebp
mov edi, eax
mov ebx, edx
jmp 0x41db57
mov ebp, dword [esp + 0x48]
test ebp, ebp
jne 0x41dbd6
mov ecx, dword [0x7440ac]
xor eax, eax
cmp edx, eax
jle 0x41ff3e
mov ebx, dword [ecx + eax*4]
cmp dword [ebx + 0x130], 0
jne 0x41ff28
inc eax
jmp 0x41dd43
mov eax, dword [ebp + 0x108]
test eax, eax
je 0x41deae
mov edx, dword [eax + 8]
cmp dword [edx + 8], 0
jne 0x41da6d
mov ecx, dword [edx + 0x14]
mov ebx, dword [0x7440b4]
xor eax, eax
jmp 0x41de98
mov eax, dword [ebp + 0x108]
mov ebx, dword [eax + 8]
mov eax, dword [ebx + 8]
mov dword [esp], eax
call fcn.0042be6a
test eax, eax
js 0x41ddad
xor eax, eax
call fcn.0041a7d4
jmp 0x41de6e
cmp eax, 0xdfb9b0bb
jne 0x41dddf
mov eax, 1
xor edi, edi
call fcn.0041a7d4
mov esi, eax
cmp edi, dword [ebx + 0x1c]
jge 0x41ddd8
mov eax, dword [ebx + 0x18]
mov eax, dword [eax + edi*4]
inc edi
mov eax, dword [eax + 4]
call fcn.00414406
jmp 0x41ddc2
mov eax, esi
jmp 0x41de6e
cmp eax, 0xfffffff5
jne 0x41f702
mov dword [esp + 0x78], 0
xor ecx, ecx
xor edi, edi
cmp edi, dword [ebx + 0x14]
jge 0x41de40
mov eax, dword [ebx + 0x10]
mov edx, dword [0x7440b4]
mov eax, dword [eax + edi*4]
mov esi, dword [eax + 4]
mov dword [esp + 0x48], eax
mov eax, dword [esi]
mov edx, dword [edx + eax*4]
cmp dword [edx + 8], 0
jne 0x41de3d
cmp dword [edx + 4], 0
jne 0x41de3d
mov eax, dword [esp + 0x48]
mov dword [esp + 0x50], ecx
mov eax, dword [eax]
mov dword [esp], eax
call fcn.0042d01a
mov ecx, dword [esp + 0x50]
cmp eax, ecx
jle 0x41de3d
mov dword [esp + 0x78], esi
mov ecx, eax
inc edi
jmp 0x41ddf4
cmp dword [esp + 0x78], 0
jne 0x41dedf
mov edx, dword [ebx + 0x1c]
xor eax, eax
cmp eax, edx
jge 0x41dc32
mov ecx, dword [ebx + 0x18]
mov ecx, dword [ecx + eax*4]
inc eax
mov ecx, dword [ecx + 4]
mov dword [ecx + 0x130], 1
jmp 0x41de50
test eax, eax
mov edx, 0
cmovle edx, eax
mov dword [esp + 0x70], edx
jmp 0x41dc32
mov esi, dword [edx + 0x10]
mov esi, dword [esi + eax*4]
mov edi, dword [esi + 4]
cmp dword [edi + 0x158], 0
mov dword [esp + 0x78], edi
je 0x41dea1
inc eax
cmp eax, ecx
jl 0x41de81
jmp 0x41ff67
mov esi, dword [edi]
mov esi, dword [ebx + esi*4]
cmp dword [esi + 4], 0
jne 0x41de97
jmp 0x41dedf
mov eax, dword [ebp + 8]
test eax, eax
jns 0x41ded2
mov dword [esp + 0x14], 0x121d
mov dword [esp + 0x10], 0x6c09d0
mov dword [esp + 0xc], 0x6c18fb
jmp 0x41f96b
mov edx, dword [0x7440bc]
mov eax, dword [edx + eax*4]
mov dword [esp + 0x78], eax
mov eax, dword [esp + 0x78]
lea edx, [esp + 0x408]
mov eax, dword [eax]
mov dword [esp + 0x88], eax
mov eax, dword [0x7440b4]
mov edi, dword [esp + 0x88]
mov eax, dword [eax + edi*4]
mov dword [esp + 0x48], eax
mov eax, dword [eax]
mov dword [esp + 0x50], eax
mov eax, dword [esp + 0x48]
call fcn.00414909
cmp eax, 0xfffffff5
mov dword [esp + 0x60], eax
je 0x41e26c
cmp dword [esp + 0x60], 0
jns 0x41e34e
mov eax, dword [esp + 0x48]
xor ebx, ebx
cmp dword [eax + 0x10], 0
je 0x41e29d
mov eax, dword [esp + 0x48]
cmp ebx, dword [eax + 0x58]
jge 0x41df7f
mov eax, dword [esp + 0x48]
mov edx, dword [eax + 0xc]
mov eax, dword [0x7440bc]
add edx, ebx
mov eax, dword [eax + edx*4]
cmp dword [eax + 0x10], 0
je 0x41df7c
xor edx, edx
mov ecx, 1
mov esi, dword [eax + 0x14]
call fcn.0041b3fc
test eax, eax
jg 0x41f6fb
mov dword [esp], esi
call fcn.00481118
inc ebx
jmp 0x41df3d
mov eax, dword [esp + 0x88]
call fcn.0041570f
mov eax, dword [esp + 0x50]
mov dword [esp + 0x10], 0
mov edx, dword [eax + 0x42c]
mov eax, dword [eax + 0x428]
mov dword [esp + 4], 0xffffffff
mov dword [esp + 8], eax
mov eax, dword [esp + 0x50]
mov dword [esp + 0xc], edx
mov dword [esp], eax
call fcn.0047057b
test eax, eax
mov dword [esp + 0x60], eax
js 0x41e22e
mov eax, dword [esp + 0x48]
mov ecx, dword [0x7440bc]
mov ebx, 1
mov dword [esp + 0x98], 0
mov edi, dword [eax + 0x58]
xor eax, eax
cmp eax, edi
jge 0x41e01d
mov esi, dword [esp + 0x48]
mov edx, dword [esi + 0xc]
add edx, eax
mov edx, dword [ecx + edx*4]
mov esi, dword [edx + 0x14]
cmp dword [esi + 8], 1
jne 0x41e01a
mov esi, dword [edx + 0x7c]
or esi, dword [edx + 0x78]
mov esi, dword [esp + 0x98]
cmovne esi, ebx
mov dword [esp + 0x98], esi
inc eax
jmp 0x41dfea
mov dword [esp + 0x8c], 0
mov eax, dword [esp + 0x48]
mov edi, dword [esp + 0x8c]
cmp edi, dword [eax + 0x58]
jge 0x41e21f
mov eax, dword [esp + 0x48]
mov edx, dword [esp + 0x8c]
add edx, dword [eax + 0xc]
cmp dword [esp + 0x98], 0
mov eax, dword [0x7440bc]
mov ebx, dword [eax + edx*4]
je 0x41e0a5
mov ecx, dword [ebx + 0x14]
cmp dword [ecx + 8], 1
jne 0x41e213
mov eax, dword [ebx + 0x7c]
mov edx, dword [ebx + 0x78]
mov edi, eax
or edi, edx
je 0x41e213
mov edi, dword [ebx + 4]
mov ecx, dword [ecx + 0x158]
mov esi, dword [edi + 0x10]
mov edi, dword [edi + 0x14]
mov dword [esp + 8], 1
mov dword [esp + 0xc], ecx
mov dword [esp], edx
mov dword [esp + 4], eax
mov dword [esp + 0x10], esi
mov dword [esp + 0x14], edi
jmp 0x41e106
mov eax, dword [ebx + 0x90]
mov ecx, dword [ebx + 4]
test eax, eax
je 0x41e0d0
mov edx, dword [ebx + 0x94]
mov esi, dword [ecx + 0x10]
mov edi, dword [ecx + 0x14]
mov dword [esp + 0xc], eax
mov dword [esp + 0x10], esi
mov dword [esp + 8], edx
mov dword [esp + 0x14], edi
jmp 0x41e0f7
mov edi, dword [ecx + 0x44]
xor edx, edx
mov eax, 1
test edi, edi
je 0x41e10b
mov eax, dword [ecx + 0x48]
mov edx, dword [ecx + 0x10]
mov ecx, dword [ecx + 0x14]
mov dword [esp + 0xc], edi
mov dword [esp + 0x10], edx
mov dword [esp + 8], eax
mov dword [esp + 0x14], ecx
mov dword [esp], 1
mov dword [esp + 4], 0
call fcn.00647ec6
mov edi, dword [esp + 0x48]
mov edi, dword [edi + 0x18]
mov dword [esp + 0x9c], edi
mov edi, dword [esp + 0x48]
mov edi, dword [edi + 0x1c]
mov dword [esp + 0xa0], edi
or edi, dword [esp + 0x9c]
mov edi, dword [ebx + 4]
mov dword [esp + 0xa4], edi
jne 0x41e14a
mov esi, dword [edi + 0x10]
mov ecx, dword [esp + 0x48]
mov edi, dword [edi + 0x14]
mov dword [ecx + 0x20], esi
mov dword [ecx + 0x24], edi
sub eax, dword [ebx + 0x60]
sbb edx, dword [ebx + 0x64]
add eax, dword [ebx + 0x68]
adc edx, dword [ebx + 0x6c]
mov dword [esp + 0x90], eax
mov eax, dword [esp + 0xa4]
mov dword [esp + 0x94], edx
mov edi, dword [eax + 0x10]
mov edx, dword [eax + 0x14]
mov eax, dword [esp + 0x48]
mov ecx, dword [eax + 0x20]
mov ebx, dword [eax + 0x24]
mov eax, dword [esp + 0xa0]
or eax, dword [esp + 0x9c]
je 0x41e1eb
mov eax, dword [esp + 0x90]
mov dword [esp + 0x1c], edx
mov dword [esp + 0xb0], edx
mov edx, dword [esp + 0x94]
mov dword [esp + 8], ecx
mov dword [esp + 0x18], edi
mov dword [esp + 0x10], eax
mov eax, dword [esp + 0x9c]
mov dword [esp + 0x14], edx
mov dword [esp + 0xc], ebx
mov dword [esp + 0xa4], ecx
mov dword [esp], eax
mov eax, dword [esp + 0xa0]
mov dword [esp + 4], eax
call fcn.00647f09
test eax, eax
mov ecx, dword [esp + 0xa4]
mov edx, dword [esp + 0xb0]
jns 0x41e205
mov eax, dword [esp + 0x48]
mov ecx, dword [esp + 0x90]
mov ebx, dword [esp + 0x94]
mov dword [eax + 0x18], ecx
mov dword [eax + 0x1c], ebx
jmp 0x41e209
mov edi, ecx
mov edx, ebx
mov eax, dword [esp + 0x48]
mov dword [eax + 0x20], edi
mov dword [eax + 0x24], edx
inc dword [esp + 0x8c]
jmp 0x41e028
mov eax, dword [eax + 0x10]
test eax, eax
jle 0x41e22e
mov edi, dword [esp + 0x48]
dec eax
mov dword [edi + 0x10], eax
mov eax, dword [esp + 0x88]
call fcn.0041560d
test eax, eax
js 0x41f6bf
cmp dword [esp + 0x60], 0
jns 0x41e27c
mov dword [esp + 8], 0x6c1912
mov dword [esp + 4], 0x18
mov dword [esp], 0
call fcn.00647705
cmp dword [esp + 0x60], 0xfffffff5
jne 0x41e29d
mov eax, dword [esp + 0x48]
mov dword [eax + 8], 1
jmp 0x41f6c4
mov eax, dword [esp + 0x48]
lea edx, [esp + 0x408]
call fcn.00414909
cmp eax, 0xfffffff5
mov dword [esp + 0x60], eax
je 0x41e26c
test eax, eax
jns 0x41e34e
cmp dword [esp + 0x60], 0xdfb9b0bb
jne 0x41e2ab
xor ebx, ebx
jmp 0x41e2f5
mov eax, dword [esp + 0x60]
mov dword [esp + 4], eax
mov eax, dword [esp + 0x50]
mov eax, dword [eax + 0x420]
mov dword [esp], eax
call fcn.004122e2
cmp dword [0x744030], 0
je 0x41e2a7
jmp 0x41dad0
mov eax, dword [esp + 0x48]
mov edx, dword [eax + 0xc]
mov eax, dword [0x7440bc]
add edx, ebx
mov eax, dword [eax + edx*4]
cmp dword [eax + 0x10], 0
jne 0x41e300
xor esi, esi
cmp esi, dword [0x7440a8]
jl 0x41e312
inc ebx
mov eax, dword [esp + 0x48]
cmp ebx, dword [eax + 0x58]
jl 0x41e2d3
jmp 0x41e342
xor ecx, ecx
xor edx, edx
call fcn.0041b3fc
test eax, eax
jle 0x41e2ea
jmp 0x41f6fb
mov eax, dword [0x7440ac]
mov edi, dword [esp + 0x48]
mov eax, dword [eax + esi*4]
mov edx, dword [edi + 0xc]
add edx, ebx
cmp dword [eax + 8], edx
jne 0x41e33f
cmp dword [eax + 0x134], 0
jne 0x41e33a
mov edx, dword [eax + 0x58]
cmp dword [edx + 8], 3
jne 0x41e33f
call fcn.004142b9
inc esi
jmp 0x41e2ec
mov dword [eax + 4], 1
jmp 0x41f6c4
call fcn.004143c1
cmp dword [0x744040], 0
je 0x41e399
mov eax, dword [esp + 0x50]
mov edx, dword [esp + 0x428]
mov eax, dword [eax + 0x1c]
mov eax, dword [eax + edx*4]
mov dword [esp + 4], 0x20
mov dword [esp], 0
mov dword [esp + 0x10], eax
mov eax, dword [0x744044]
mov dword [esp + 0xc], eax
lea eax, [esp + 0x408]
mov dword [esp + 8], eax
call fcn.004387c0
mov eax, dword [esp + 0x48]
mov edx, dword [esp + 0x428]
cmp edx, dword [eax + 0x58]
jl 0x41e47d
mov eax, dword [0x7440b4]
mov edi, dword [esp + 0x88]
mov ebx, dword [eax + edi*4]
cmp edx, dword [ebx + 0x5c]
jl 0x41f6ae
mov eax, dword [ebx]
lea edi, [esp + 0x2e8]
mov ecx, 8
mov eax, dword [eax + 0x1c]
mov esi, dword [eax + edx*4]
xor eax, eax
mov edx, dword [esp + 0x418]
rep stosd dword es:[edi], eax
mov ecx, dword [esp + 0x41c]
lea eax, [esi + 0x10]
mov dword [esp], eax
lea eax, [esp + 0x2e8]
call fcn.00414cef
mov ebp, eax
mov eax, dword [esp + 0x440]
mov edx, dword [esp + 0x444]
mov edi, dword [esp + 0x428]
mov dword [esp + 0x48], eax
mov eax, dword [esi + 0xb0]
mov dword [esp + 0x4c], edx
mov eax, dword [eax]
mov dword [esp], eax
call fcn.00651865
mov dword [esp + 0x14], edi
mov edx, dword [esp + 0x48]
mov ecx, dword [esp + 0x4c]
mov edi, dword [esp + 0x88]
mov dword [esp + 0x20], ebp
mov dword [esp + 0xc], eax
mov dword [esp + 0x18], edx
mov dword [esp + 8], 0x6c1929
mov dword [esp + 0x1c], ecx
mov dword [esp + 0x10], edi
mov dword [esp + 4], 0x18
mov eax, dword [ebx]
mov dword [esp], eax
call fcn.00647705
mov eax, dword [esp + 0x428]
inc eax
mov dword [ebx + 0x5c], eax
jmp 0x41f6ae
mov eax, dword [esp + 0x48]
mov ecx, dword [eax + 0xc]
mov eax, dword [0x7440bc]
add ecx, edx
mov ebp, dword [eax + ecx*4]
mov ecx, dword [esp + 0x424]
mov ebx, ecx
sar ebx, 0x1f
add dword [ebp + 0x130], ecx
adc dword [ebp + 0x134], ebx
add dword [ebp + 0x138], 1
adc dword [ebp + 0x13c], 0
cmp dword [ebp + 8], 0
jne 0x41f6ae
test byte [esp + 0x42c], 2
je 0x41e50e
cmp dword [0x744030], 1
mov eax, dword [esp + 0x50]
mov ecx, dword [eax + 0x420]
mov dword [esp + 0x10], edx
sbb eax, eax
mov dword [esp + 8], 0x6c1956
mov dword [esp], 0
and eax, 0x10
add eax, 8
mov dword [esp + 0xc], ecx
mov dword [esp + 4], eax
call fcn.00647705
cmp dword [0x744030], 0
jne 0x41dad0
cmp dword [0x744034], 0
je 0x41e7f1
mov edx, dword [ebp]
mov eax, dword [0x7440b4]
lea edi, [esp + 0x2c8]
mov ecx, 8
mov dword [esp + 0xe0], 1
mov dword [esp + 0xe4], 0xf4240
mov eax, dword [eax + edx*4]
mov ebx, dword [eax + 0x30]
mov esi, dword [eax + 0x34]
xor eax, eax
rep stosd dword es:[edi], eax
lea eax, [esp + 0xe0]
lea edi, [esp + 0x2a8]
mov edx, ebx
mov ecx, esi
mov dword [esp], eax
lea eax, [esp + 0x2c8]
call fcn.00414cef
mov edx, dword [ebp]
mov dword [esp + 0x70], eax
mov ecx, 8
mov eax, dword [0x7440b4]
mov eax, dword [eax + edx*4]
mov ebx, dword [eax + 0x30]
mov esi, dword [eax + 0x34]
xor eax, eax
rep stosd dword es:[edi], eax
lea eax, [esp + 0x2a8]
lea edi, [esp + 0x288]
mov edx, ebx
mov ecx, esi
call fcn.004157ca
mov dword [esp + 0x60], eax
mov eax, dword [ebp + 4]
mov ecx, 8
lea edx, [eax + 0x10]
xor eax, eax
rep stosd dword es:[edi], eax
mov dword [esp], edx
mov ecx, dword [esp + 0x41c]
lea eax, [esp + 0x288]
mov edx, dword [esp + 0x418]
lea edi, [esp + 0x268]
call fcn.00414cef
mov ecx, 8
mov dword [esp + 0x78], eax
xor eax, eax
rep stosd dword es:[edi], eax
mov edx, dword [esp + 0x418]
mov ecx, dword [esp + 0x41c]
lea eax, [esp + 0x268]
lea edi, [esp + 0x248]
call fcn.004157ca
mov dword [esp + 0x88], eax
mov eax, dword [ebp + 4]
mov ecx, 8
lea edx, [eax + 0x10]
xor eax, eax
rep stosd dword es:[edi], eax
mov dword [esp], edx
mov ecx, dword [esp + 0x414]
lea eax, [esp + 0x248]
mov edx, dword [esp + 0x410]
lea edi, [esp + 0x228]
call fcn.00414cef
mov ecx, 8
mov dword [esp + 0x8c], eax
xor eax, eax
rep stosd dword es:[edi], eax
mov edx, dword [esp + 0x410]
mov ecx, dword [esp + 0x414]
lea eax, [esp + 0x228]
lea edi, [esp + 0x208]
call fcn.004157ca
mov ecx, 8
mov dword [esp + 0x98], eax
xor eax, eax
rep stosd dword es:[edi], eax
mov ebx, dword [ebp + 0x40]
mov esi, dword [ebp + 0x44]
lea eax, [esp + 0xd8]
lea edi, [esp + 0x1e8]
mov dword [esp + 0xd8], 1
mov dword [esp + 0xdc], 0xf4240
mov dword [esp], eax
lea eax, [esp + 0x208]
mov edx, ebx
mov ecx, esi
call fcn.00414cef
mov ecx, 8
mov dword [esp + 0x90], eax
xor eax, eax
rep stosd dword es:[edi], eax
mov edx, dword [ebp + 0x40]
mov ecx, dword [ebp + 0x44]
lea eax, [esp + 0x1e8]
lea edi, [esp + 0x1c8]
call fcn.004157ca
mov ecx, 8
mov dword [esp + 0x9c], eax
xor eax, eax
rep stosd dword es:[edi], eax
mov ebx, dword [ebp + 0x30]
mov esi, dword [ebp + 0x34]
lea eax, [esp + 0xd0]
lea edi, [esp + 0x1a8]
mov dword [esp + 0xd0], 1
mov dword [esp + 0xd4], 0xf4240
mov dword [esp], eax
lea eax, [esp + 0x1c8]
mov edx, ebx
mov ecx, esi
call fcn.00414cef
mov ecx, 8
mov ebx, eax
xor eax, eax
rep stosd dword es:[edi], eax
mov edx, dword [ebp + 0x30]
mov ecx, dword [ebp + 0x34]
lea eax, [esp + 0x1a8]
call fcn.004157ca
mov esi, eax
mov eax, dword [ebp + 0x14]
mov eax, dword [eax + 8]
mov dword [esp], eax
call fcn.00651865
mov edi, dword [esp + 0x70]
mov dword [esp + 0x14], esi
mov esi, dword [esp + 0x48]
mov dword [esp + 0x10], eax
mov dword [esp + 0x18], ebx
mov eax, dword [esp + 0x428]
mov dword [esp + 0x38], edi
mov edi, dword [esp + 0x60]
mov dword [esp + 0x34], edi
mov edi, dword [esp + 0x78]
mov dword [esp + 0x30], edi
mov edi, dword [esp + 0x88]
mov dword [esp + 0x2c], edi
mov edi, dword [esp + 0x8c]
mov dword [esp + 0x28], edi
mov edi, dword [esp + 0x98]
mov dword [esp + 0x24], edi
mov edi, dword [esp + 0x90]
mov dword [esp + 0x20], edi
mov edi, dword [esp + 0x9c]
mov dword [esp + 0x1c], edi
add eax, dword [esi + 0xc]
mov dword [esp + 8], 0x6c197d
mov dword [esp + 4], 0x20
mov dword [esp], 0
mov dword [esp + 0xc], eax
call fcn.00647705
cmp dword [ebp + 0x50], 0
jne 0x41eae6
mov eax, dword [esp + 0x50]
mov edx, dword [eax + 0x42c]
mov eax, dword [eax + 0x428]
mov dword [esp + 0x74], edx
mov dword [esp + 0x70], eax
mov eax, dword [esp + 0x74]
add eax, 0x80000000
or eax, dword [esp + 0x70]
je 0x41eae6
mov eax, dword [ebp + 4]
cmp dword [eax + 0xb8], 0x3f
jg 0x41eae6
mov eax, dword [ebp + 0x34]
add eax, 0x80000000
or eax, dword [ebp + 0x30]
jne 0x41e9ae
mov eax, dword [esp + 0x70]
mov edx, dword [esp + 0x74]
mov esi, dword [esp + 0x48]
neg eax
adc edx, 0
neg edx
cmp dword [esi + 0x34], edx
jne 0x41e9ae
cmp dword [esi + 0x30], eax
jne 0x41e9ae
mov eax, dword [esp + 0x50]
mov eax, dword [eax + 4]
test byte [eax + 9], 2
je 0x41e9ae
mov eax, dword [esp + 0x50]
or esi, 0xffffffff
mov edi, 0x7fffffff
mov dword [esp + 0x60], 0
mov eax, dword [eax + 0x18]
mov dword [esp + 0x88], eax
mov ecx, dword [esp + 0x88]
cmp dword [esp + 0x60], ecx
je 0x41e95b
mov eax, dword [esp + 0x50]
mov ecx, dword [esp + 0x60]
mov eax, dword [eax + 0x1c]
mov ebx, dword [eax + ecx*4]
cmp dword [ebx + 0x34], 0x30
je 0x41e952
mov eax, dword [ebx + 0x18]
mov ecx, dword [ebx + 0x1c]
mov dword [esp + 0x78], eax
lea eax, [ecx - 0x80000000]
or eax, dword [esp + 0x78]
je 0x41e952
mov dword [esp + 0x10], 1
mov dword [esp + 0x14], 0xf4240
mov eax, dword [ebx + 0x10]
mov edx, dword [ebx + 0x14]
mov dword [esp + 4], ecx
mov dword [esp + 0x8c], ecx
mov dword [esp + 8], eax
mov eax, dword [esp + 0x78]
mov dword [esp + 0xc], edx
mov dword [esp], eax
call fcn.00647ec6
cmp edx, edi
jg 0x41e952
mov ecx, dword [esp + 0x8c]
jl 0x41e920
cmp eax, esi
jae 0x41e952
mov dword [esp + 0x10], 1
mov dword [esp + 0x14], 0xf4240
mov eax, dword [ebx + 0x10]
mov edx, dword [ebx + 0x14]
mov dword [esp + 4], ecx
mov dword [esp + 8], eax
mov eax, dword [esp + 0x78]
mov dword [esp + 0xc], edx
mov dword [esp], eax
call fcn.00647ec6
mov esi, eax
mov edi, edx
inc dword [esp + 0x60]
jmp 0x41e89b
cmp dword [esp + 0x74], edi
jg 0x41e9ae
jl 0x41e969
cmp dword [esp + 0x70], esi
jae 0x41e9ae
mov eax, esi
sub eax, dword [esp + 0x70]
mov edx, edi
sbb edx, dword [esp + 0x74]
mov dword [esp + 8], 0x6c1a21
mov dword [esp + 4], 0x28
mov dword [esp + 0xc], eax
mov eax, dword [esp + 0x50]
mov dword [esp + 0x10], edx
mov dword [esp], eax
call fcn.00647705
mov eax, esi
mov edx, edi
mov esi, dword [esp + 0x48]
neg eax
adc edx, 0
neg edx
mov dword [esi + 0x30], eax
mov dword [esi + 0x34], edx
mov ebx, dword [ebp + 4]
mov eax, dword [ebx + 0x10]
mov edx, dword [ebx + 0x14]
mov dword [esp + 8], 1
mov dword [esp + 0xc], 0xf4240
mov dword [esp + 0x10], eax
mov eax, dword [esp + 0x50]
mov dword [esp + 0x14], edx
mov edx, dword [eax + 0x42c]
mov eax, dword [eax + 0x428]
mov dword [esp + 4], edx
mov dword [esp], eax
call fcn.00647ec6
mov esi, dword [ebx + 0xb8]
mov dword [esp + 0x74], edx
mov dword [esp + 0x70], eax
mov dword [ebp + 0x50], 1
mov dword [esp + 0x60], esi
mov cl, byte [esp + 0x60]
mov edi, ecx
shr edi, 5
and edi, 1
mov esi, edi
shl edi, cl
xor esi, 1
mov ebx, edi
mov dword [esp + 0x7c], edi
shl esi, cl
mov ecx, esi
mov dword [esp + 0x78], esi
add ecx, eax
adc ebx, edx
cmp dword [esp + 0x74], ebx
jg 0x41eae6
jl 0x41ea3f
cmp dword [esp + 0x70], ecx
jae 0x41eae6
mov edi, dword [esp + 0x41c]
mov esi, dword [esp + 0x418]
lea ecx, [edi - 0x80000000]
or ecx, esi
je 0x41eaa0
mov ecx, dword [esp + 0x60]
xor eax, eax
xor edx, edx
dec ecx
test cl, 0x20
sete al
setne dl
shl eax, cl
shl edx, cl
mov ecx, eax
add ecx, dword [esp + 0x70]
mov ebx, edx
adc ebx, dword [esp + 0x74]
cmp edi, ebx
jl 0x41eaa0
jg 0x41ea83
cmp esi, ecx
jbe 0x41eaa0
sub esi, dword [esp + 0x78]
sbb edi, dword [esp + 0x7c]
mov dword [esp + 0x418], esi
mov dword [esp + 0x41c], edi
mov dword [ebp + 0x50], 0
mov edi, dword [esp + 0x414]
mov esi, dword [esp + 0x410]
lea ecx, [edi - 0x80000000]
or ecx, esi
je 0x41eae6
mov ecx, dword [esp + 0x60]
xor eax, eax
xor edx, edx
dec ecx
test cl, 0x20
sete al
setne dl
shl eax, cl
shl edx, cl
mov ecx, eax
mov eax, dword [esp + 0x70]
mov ebx, edx
mov edx, dword [esp + 0x74]
add eax, ecx
adc edx, ebx
cmp edi, edx
jge 0x41ff76
mov eax, dword [ebp + 0x138]
xor eax, 1
or eax, dword [ebp + 0x13c]
jne 0x41eb18
xor ebx, ebx
jmp 0x41eb0d
imul edi, ebx, 0xc
add edi, dword [eax + 0x98]
mov eax, dword [edi + 8]
cmp eax, 5
jne 0x41eb7f
inc ebx
mov eax, dword [ebp + 4]
cmp ebx, dword [eax + 0x9c]
jl 0x41eafb
mov edi, dword [esp + 0x41c]
mov esi, dword [esp + 0x418]
lea eax, [edi - 0x80000000]
or eax, esi
je 0x41ebd5
mov eax, dword [ebp + 4]
mov edx, dword [eax + 0x14]
mov eax, dword [eax + 0x10]
mov dword [esp + 8], 1
mov dword [esp + 0xc], 0xf4240
mov dword [esp + 0x10], eax
mov eax, dword [esp + 0x48]
mov dword [esp + 0x14], edx
mov edx, dword [eax + 0x34]
mov eax, dword [eax + 0x30]
mov dword [esp + 4], edx
mov dword [esp], eax
call fcn.00647ec6
add esi, eax
adc edi, edx
mov dword [esp + 0x418], esi
mov dword [esp + 0x41c], edi
jmp 0x41ebd5
mov dword [esp + 4], eax
lea eax, [esp + 0x408]
mov dword [esp + 8], 0
mov dword [esp], eax
call fcn.0047c11c
test eax, eax
jne 0x41eb0c
mov eax, dword [edi + 4]
mov dword [esp + 8], eax
mov eax, dword [edi + 8]
mov dword [esp + 4], eax
lea eax, [esp + 0x408]
mov dword [esp], eax
call fcn.0047c0c0
test eax, eax
je 0x41dad0
mov esi, dword [edi]
mov ecx, dword [edi + 4]
mov edi, eax
rep movsb byte es:[edi], byte [esi]
jmp 0x41eb0c
mov edi, dword [esp + 0x414]
mov esi, dword [esp + 0x410]
lea eax, [edi - 0x80000000]
or eax, esi
je 0x41ec36
mov eax, dword [ebp + 4]
mov edx, dword [eax + 0x14]
mov eax, dword [eax + 0x10]
mov dword [esp + 8], 1
mov dword [esp + 0xc], 0xf4240
mov dword [esp + 0x10], eax
mov eax, dword [esp + 0x48]
mov dword [esp + 0x14], edx
mov edx, dword [eax + 0x34]
mov eax, dword [eax + 0x30]
mov dword [esp + 4], edx
mov dword [esp], eax
call fcn.00647ec6
add esi, eax
adc edi, edx
mov dword [esp + 0x410], esi
mov dword [esp + 0x414], edi
mov edx, dword [esp + 0x414]
mov eax, dword [esp + 0x410]
lea ecx, [edx - 0x80000000]
or ecx, eax
je 0x41ecad
fld qword [ebp + 0x80]
mov dword [esp + 0x70], eax
fnstcw word [esp + 0xb6]
mov dword [esp + 0x74], edx
mov ax, word [esp + 0xb6]
fild qword [esp + 0x70]
or ah, 0xc
mov word [esp + 0xb4], ax
fstp qword [esp + 0xb8]
fld qword [esp + 0xb8]
fmulp st(1)
fstp qword [esp + 0xb8]
fld qword [esp + 0xb8]
fldcw word [esp + 0xb4]
fistp qword [esp + 0x410]
fldcw word [esp + 0xb6]
mov edx, dword [esp + 0x41c]
mov eax, dword [esp + 0x418]
lea ecx, [edx - 0x80000000]
or ecx, eax
je 0x41ed24
fld qword [ebp + 0x80]
mov dword [esp + 0x70], eax
fnstcw word [esp + 0xb6]
mov dword [esp + 0x74], edx
mov ax, word [esp + 0xb6]
fild qword [esp + 0x70]
or ah, 0xc
mov word [esp + 0xb4], ax
fstp qword [esp + 0xb8]
fld qword [esp + 0xb8]
fmulp st(1)
fstp qword [esp + 0xb8]
fld qword [esp + 0xb8]
fldcw word [esp + 0xb4]
fistp qword [esp + 0x418]
fldcw word [esp + 0xb6]
mov dword [esp + 0x18], 0x2005
mov dword [esp + 0x10], 1
mov dword [esp + 0x14], 0xf4240
mov eax, dword [ebp + 4]
mov edx, dword [eax + 0x14]
mov eax, dword [eax + 0x10]
mov dword [esp + 0xc], edx
mov dword [esp + 8], eax
mov edx, dword [esp + 0x41c]
mov eax, dword [esp + 0x418]
mov dword [esp + 4], edx
mov dword [esp], eax
call fcn.00647e9f
mov ecx, dword [ebp + 0x14]
cmp dword [ecx + 8], 1
ja 0x41ef02
lea ebx, [edx - 0x80000000]
mov ecx, eax
or ecx, ebx
je 0x41ef02
mov edi, dword [ebp + 0x34]
lea ecx, [edi - 0x80000000]
or ecx, dword [ebp + 0x30]
jne 0x41ef02
cmp dword [0x74403c], 0
jne 0x41ef02
mov esi, dword [esp + 0x50]
mov ecx, dword [esi + 4]
test byte [ecx + 9], 2
je 0x41ef02
mov edi, dword [esp + 0x48]
mov ebx, dword [edi + 0x3c]
mov ecx, dword [edi + 0x38]
lea esi, [ebx - 0x80000000]
or esi, ecx
je 0x41ef02
sub eax, ecx
sbb edx, ebx
mov dword [esp + 0x70], eax
mov esi, eax
mov dword [esp + 0x74], edx
mov edi, edx
fild qword [esp + 0x70]
fld dword [0x6b5028]
fld st(0)
fchs
fld dword [0x6c22e8]
fmul st(1), st(0)
fxch st(1)
fucompi st(3)
ja 0x41ee08
fmulp st(1)
fxch st(1)
fucompi st(1)
fstp st(0)
jbe 0x41ef02
jmp 0x41ee0e
fstp st(0)
fstp st(0)
fstp st(0)
mov eax, dword [esp + 0x48]
mov ecx, dword [esp + 0x48]
mov edx, dword [eax + 0x34]
mov eax, dword [eax + 0x30]
mov dword [esp + 0x70], eax
sub eax, esi
mov dword [esp + 0x74], edx
sbb edx, edi
mov dword [ecx + 0x30], eax
mov dword [ecx + 0x34], edx
mov dword [esp + 0x14], eax
mov dword [esp + 0x18], edx
mov dword [esp + 0xc], esi
mov dword [esp + 0x10], edi
mov dword [esp + 8], 0x6c1a40
mov dword [esp + 4], 0x30
mov dword [esp], 0
call fcn.00647705
mov ebx, dword [ebp + 4]
mov eax, dword [ebx + 0x10]
mov edx, dword [ebx + 0x14]
mov dword [esp + 8], 1
mov dword [esp + 0xc], 0xf4240
mov dword [esp], esi
mov dword [esp + 4], edi
mov dword [esp + 0x10], eax
mov dword [esp + 0x14], edx
call fcn.00647ec6
sub dword [esp + 0x418], eax
mov eax, dword [esp + 0x410]
sbb dword [esp + 0x41c], edx
mov edx, dword [esp + 0x414]
mov dword [esp + 0x70], eax
mov dword [esp + 0x74], edx
mov eax, dword [esp + 0x74]
add eax, 0x80000000
or eax, dword [esp + 0x70]
je 0x41ffa6
mov eax, dword [ebx + 0x10]
mov edx, dword [ebx + 0x14]
mov dword [esp], esi
mov dword [esp + 4], edi
mov dword [esp + 8], 1
mov dword [esp + 0xc], 0xf4240
mov dword [esp + 0x10], eax
mov dword [esp + 0x14], edx
call fcn.00647ec6
mov esi, dword [esp + 0x70]
mov edi, dword [esp + 0x74]
sub esi, eax
sbb edi, edx
mov dword [esp + 0x410], esi
mov dword [esp + 0x414], edi
mov edi, dword [ebp + 4]
mov eax, dword [edi + 0x10]
mov edx, dword [edi + 0x14]
mov dword [esp + 0x10], eax
mov eax, dword [esp + 0x48]
mov dword [esp + 0x14], edx
mov edx, dword [eax + 0x24]
mov eax, dword [eax + 0x20]
mov dword [esp + 8], eax
mov eax, dword [esp + 0x48]
mov dword [esp + 0xc], edx
mov edx, dword [eax + 0x1c]
mov eax, dword [eax + 0x18]
mov dword [esp + 4], edx
mov dword [esp], eax
call fcn.00647ec6
mov ebx, dword [esp + 0x414]
mov ecx, dword [esp + 0x410]
lea esi, [ebx - 0x80000000]
or esi, ecx
je 0x41efb1
add ecx, eax
adc ebx, edx
mov dword [esp + 0x410], ecx
mov dword [esp + 0x70], ecx
mov dword [esp + 0x74], ebx
mov dword [esp + 0x414], ebx
mov ecx, dword [ebp + 0x6c]
cmp ecx, dword [esp + 0x74]
mov ebx, dword [ebp + 0x68]
jg 0x41ef89
jl 0x41ef81
cmp ebx, dword [esp + 0x70]
jae 0x41ef89
mov ebx, dword [esp + 0x70]
mov ecx, dword [esp + 0x74]
mov dword [ebp + 0x6c], ecx
mov ecx, dword [ebp + 0x64]
cmp ecx, dword [esp + 0x74]
mov dword [ebp + 0x68], ebx
mov ebx, dword [ebp + 0x60]
jl 0x41efab
jg 0x41efa3
cmp ebx, dword [esp + 0x70]
jbe 0x41efab
mov ebx, dword [esp + 0x70]
mov ecx, dword [esp + 0x74]
mov dword [ebp + 0x60], ebx
mov dword [ebp + 0x64], ecx
mov ebx, dword [esp + 0x41c]
mov ecx, dword [esp + 0x418]
lea esi, [ebx - 0x80000000]
or esi, ecx
je 0x41efdb
add eax, ecx
adc edx, ebx
mov dword [esp + 0x418], eax
mov dword [esp + 0x41c], edx
mov eax, dword [esp + 0x418]
mov edx, dword [esp + 0x41c]
mov dword [esp + 0x18], 0x2005
mov dword [esp + 0x10], 1
mov dword [esp + 0x14], 0xf4240
mov dword [esp + 0x60], eax
mov dword [esp + 0x64], edx
mov eax, dword [edi + 0x10]
mov edx, dword [edi + 0x14]
mov dword [esp + 8], eax
mov dword [esp + 0xc], edx
mov eax, dword [esp + 0x60]
mov edx, dword [esp + 0x64]
mov dword [esp], eax
mov dword [esp + 4], edx
call fcn.00647e9f
mov ecx, dword [ebp + 0x14]
cmp dword [ecx + 8], 1
ja 0x41f349
lea ebx, [edx - 0x80000000]
mov ecx, eax
or ecx, ebx
je 0x41f349
mov ebx, dword [ebp + 0x34]
mov ecx, dword [ebp + 0x30]
lea esi, [ebx - 0x80000000]
or esi, ecx
je 0x41f349
cmp dword [0x74403c], 0
jne 0x41f349
mov esi, eax
mov edi, edx
fld dword [0x6c22e8]
sub esi, ecx
sbb edi, ebx
mov dword [esp + 0x70], esi
mov dword [esp + 0x74], edi
mov edi, dword [esp + 0x50]
fild qword [esp + 0x70]
mov esi, dword [edi + 4]
test byte [esi + 9], 2
je 0x41f1ec
fld dword [0x6b5028]
fld st(0)
fchs
fmul st(3)
fucompi st(2)
ja 0x41f0e6
fmulp st(2)
fucompi st(1)
fstp st(0)
ja 0x41f0ec
add eax, 0x186a0
mov ecx, dword [ebp + 0x4c]
mov ebx, dword [ebp + 0x48]
adc edx, 0
mov esi, eax
mov eax, dword [ebp + 0x38]
mov edi, edx
mov edx, dword [ebp + 0x3c]
cmp edx, ecx
jg 0x41f0d2
jl 0x41f0ce
cmp eax, ebx
jae 0x41f0d2
mov eax, ebx
mov edx, ecx
cmp edi, edx
jg 0x41f349
jl 0x41f0ec
cmp esi, eax
jae 0x41f349
jmp 0x41f0ec
fstp st(0)
fstp st(0)
fstp st(0)
mov eax, dword [esp + 0x48]
mov edi, dword [esp + 0x48]
mov edx, dword [eax + 0x34]
mov eax, dword [eax + 0x30]
mov dword [esp + 0x50], eax
sub eax, dword [esp + 0x70]
mov dword [esp + 0x54], edx
sbb edx, dword [esp + 0x74]
mov dword [edi + 0x30], eax
mov dword [edi + 0x34], edx
mov dword [esp + 0x14], eax
mov dword [esp + 0x18], edx
mov eax, dword [esp + 0x70]
mov edx, dword [esp + 0x74]
mov dword [esp + 8], 0x6c1a7d
mov dword [esp + 4], 0x30
mov dword [esp], 0
mov dword [esp + 0xc], eax
mov dword [esp + 0x10], edx
call fcn.00647705
mov ebx, dword [ebp + 4]
mov eax, dword [ebx + 0x10]
mov edx, dword [ebx + 0x14]
mov dword [esp + 8], 1
mov dword [esp + 0xc], 0xf4240
mov dword [esp + 0x10], eax
mov dword [esp + 0x14], edx
mov eax, dword [esp + 0x70]
mov edx, dword [esp + 0x74]
mov dword [esp], eax
mov dword [esp + 4], edx
call fcn.00647ec6
mov edi, dword [esp + 0x414]
mov esi, dword [esp + 0x410]
sub dword [esp + 0x418], eax
sbb dword [esp + 0x41c], edx
lea eax, [edi - 0x80000000]
or eax, esi
je 0x41f349
mov eax, dword [ebx + 0x10]
mov edx, dword [ebx + 0x14]
mov dword [esp + 8], 1
mov dword [esp + 0xc], 0xf4240
mov dword [esp + 0x10], eax
mov dword [esp + 0x14], edx
mov eax, dword [esp + 0x70]
mov edx, dword [esp + 0x74]
mov dword [esp], eax
mov dword [esp + 4], edx
call fcn.00647ec6
sub esi, eax
sbb edi, edx
mov dword [esp + 0x410], esi
mov dword [esp + 0x414], edi
jmp 0x41f349
fld dword [0x6b5024]
fld st(0)
fchs
fmul st(3)
fucompi st(2)
ja 0x41f208
fmul st(2)
fxch st(1)
fucompi st(1)
fstp st(0)
jbe 0x41f269
jmp 0x41f20c
fstp st(0)
fstp st(0)
fstp xword [esp + 0x50]
mov eax, dword [esp + 0x428]
mov edx, dword [esp + 0x64]
mov dword [esp + 0x14], ecx
mov dword [esp + 0x18], ebx
mov dword [esp + 0x1c], eax
mov eax, dword [esp + 0x60]
mov dword [esp + 0x10], edx
mov dword [esp + 8], 0x6c1aad
mov dword [esp + 4], 0x18
mov dword [esp], 0
mov dword [esp + 0xc], eax
call fcn.00647705
fld xword [esp + 0x50]
mov dword [esp + 0x418], 0
mov dword [esp + 0x41c], 0x80000000
mov ebx, dword [esp + 0x414]
mov ecx, dword [esp + 0x410]
lea eax, [ebx - 0x80000000]
or eax, ecx
fstp xword [esp + 0x60]
je 0x41f349
mov dword [esp + 0x10], 1
mov dword [esp + 0x14], 0xf4240
mov eax, dword [ebp + 4]
mov dword [esp + 0x70], ecx
mov edx, dword [eax + 0x14]
mov eax, dword [eax + 0x10]
mov dword [esp], ecx
mov dword [esp + 4], ebx
mov dword [esp + 8], eax
mov dword [esp + 0xc], edx
call fcn.00647ec6
mov esi, dword [ebp + 0x30]
mov edi, dword [ebp + 0x34]
mov ecx, dword [esp + 0x70]
sub eax, esi
sbb edx, edi
mov dword [esp + 0x50], eax
mov dword [esp + 0x54], edx
fild qword [esp + 0x50]
fld dword [0x6b5024]
fld st(0)
fchs
fld xword [esp + 0x60]
fmul st(1), st(0)
fxch st(1)
fucompi st(3)
ja 0x41f2f6
fmulp st(1)
fxch st(1)
fucompi st(1)
fstp st(0)
jbe 0x41f349
jmp 0x41f2fc
fstp st(0)
fstp st(0)
fstp st(0)
mov eax, dword [esp + 0x428]
mov dword [esp + 0x14], esi
mov dword [esp + 0x18], edi
mov dword [esp + 0xc], ecx
mov dword [esp + 0x10], ebx
mov dword [esp + 8], 0x6c1ad9
mov dword [esp + 0x1c], eax
mov dword [esp + 4], 0x18
mov dword [esp], 0
call fcn.00647705
mov dword [esp + 0x410], 0
mov dword [esp + 0x414], 0x80000000
mov ecx, dword [esp + 0x41c]
mov ebx, dword [esp + 0x418]
lea eax, [ecx - 0x80000000]
or eax, ebx
je 0x41f398
mov dword [esp + 0x10], 1
mov dword [esp + 0x14], 0xf4240
mov eax, dword [ebp + 4]
mov edx, dword [eax + 0x14]
mov eax, dword [eax + 0x10]
mov dword [esp], ebx
mov dword [esp + 4], ecx
mov dword [esp + 8], eax
mov dword [esp + 0xc], edx
call fcn.00647ec6
mov edi, dword [esp + 0x48]
mov dword [edi + 0x38], eax
mov dword [edi + 0x3c], edx
cmp dword [0x744034], 0
je 0x41f557
mov edx, dword [ebp]
mov eax, dword [0x7440b4]
lea edi, [esp + 0x188]
mov ecx, 8
mov dword [esp + 0xc8], 1
mov dword [esp + 0xcc], 0xf4240
mov eax, dword [eax + edx*4]
mov ebx, dword [eax + 0x30]
mov esi, dword [eax + 0x34]
xor eax, eax
rep stosd dword es:[edi], eax
lea eax, [esp + 0xc8]
lea edi, [esp + 0x168]
mov edx, ebx
mov ecx, esi
mov dword [esp], eax
lea eax, [esp + 0x188]
call fcn.00414cef
mov edx, dword [ebp]
mov dword [esp + 0x50], eax
mov ecx, 8
mov eax, dword [0x7440b4]
mov eax, dword [eax + edx*4]
mov ebx, dword [eax + 0x30]
mov esi, dword [eax + 0x34]
xor eax, eax
rep stosd dword es:[edi], eax
lea eax, [esp + 0x168]
lea edi, [esp + 0x148]
mov edx, ebx
mov ecx, esi
call fcn.004157ca
mov dword [esp + 0x70], eax
mov eax, dword [ebp + 4]
mov ecx, 8
lea edx, [eax + 0x10]
xor eax, eax
rep stosd dword es:[edi], eax
mov dword [esp], edx
mov ecx, dword [esp + 0x41c]
lea eax, [esp + 0x148]
mov edx, dword [esp + 0x418]
lea edi, [esp + 0x128]
call fcn.00414cef
mov ecx, 8
mov dword [esp + 0x60], eax
xor eax, eax
rep stosd dword es:[edi], eax
mov edx, dword [esp + 0x418]
mov ecx, dword [esp + 0x41c]
lea eax, [esp + 0x128]
lea edi, [esp + 0x108]
call fcn.004157ca
mov esi, eax
mov eax, dword [ebp + 4]
mov ecx, 8
lea edx, [eax + 0x10]
xor eax, eax
rep stosd dword es:[edi], eax
mov dword [esp], edx
mov ecx, dword [esp + 0x414]
lea eax, [esp + 0x108]
mov edx, dword [esp + 0x410]
lea edi, [esp + 0xe8]
call fcn.00414cef
mov ecx, 8
mov ebx, eax
xor eax, eax
rep stosd dword es:[edi], eax
mov edx, dword [esp + 0x410]
mov ecx, dword [esp + 0x414]
lea eax, [esp + 0xe8]
call fcn.004157ca
mov edi, eax
mov eax, dword [ebp + 0x14]
mov eax, dword [eax + 8]
mov dword [esp], eax
call fcn.00651865
mov ecx, dword [esp + 0x50]
mov dword [esp + 0x14], edi
mov edi, dword [esp + 0x48]
mov dword [esp + 0x10], eax
mov dword [esp + 0x1c], esi
mov dword [esp + 0x18], ebx
mov dword [esp + 0x28], ecx
mov ecx, dword [esp + 0x70]
mov eax, dword [esp + 0x428]
mov dword [esp + 0x24], ecx
mov ecx, dword [esp + 0x60]
mov dword [esp + 0x20], ecx
add eax, dword [edi + 0xc]
mov dword [esp + 8], 0x6c1b05
mov dword [esp + 4], 0x20
mov dword [esp], 0
mov dword [esp + 0xc], eax
call fcn.00647705
mov eax, dword [esp + 0x410]
mov edx, dword [esp + 0x414]
mov dword [esp + 0x48], 0
mov dword [esp + 0x70], eax
mov dword [esp + 0x74], edx
mov eax, dword [0x7440b4]
mov edx, dword [ebp]
mov eax, dword [eax + edx*4]
mov dword [esp + 0x50], eax
mov eax, dword [esp + 0x50]
mov edi, dword [esp + 0x48]
cmp edi, dword [eax + 0x58]
jge 0x41f69e
mov eax, dword [esp + 0x50]
mov edx, dword [esp + 0x48]
add edx, dword [eax + 0xc]
mov eax, dword [0x7440bc]
mov ebx, dword [eax + edx*4]
mov edi, dword [ebx + 0xe4]
test edi, edi
je 0x41f695
mov eax, dword [ebx + 4]
mov edx, dword [eax + 0x14]
mov eax, dword [eax + 0x10]
mov dword [esp + 0x14], edx
mov dword [esp + 0x10], eax
mov eax, dword [ebp + 4]
mov edx, dword [eax + 0x14]
mov eax, dword [eax + 0x10]
mov dword [esp + 0xc], edx
mov dword [esp + 8], eax
mov edx, dword [esp + 0x74]
mov eax, dword [esp + 0x70]
mov dword [esp + 4], edx
mov dword [esp], eax
call fcn.00647ec6
add eax, 0xffffffff
adc edx, 0xffffffff
mov ecx, edx
cmp ecx, dword [ebx + 0xd4]
mov edx, eax
jl 0x41f695
jg 0x41f610
cmp eax, dword [ebx + 0xd0]
jbe 0x41f695
mov eax, dword [ebx + 0xdc]
mov esi, dword [ebx + 0xd8]
cmp ecx, eax
jg 0x41f636
jl 0x41f626
cmp edx, esi
jae 0x41f636
cmp dword [edi], 0
jne 0x41f656
not esi
xor eax, 0x7fffffff
or esi, eax
je 0x41f656
mov dword [esp + 4], 0
mov dword [esp], ebx
mov dword [esp + 0x60], edx
mov dword [esp + 0x64], ecx
call fcn.00418700
mov edx, dword [esp + 0x60]
mov ecx, dword [esp + 0x64]
xor edi, edi
xor esi, esi
cmp esi, dword [ebx + 0xf8]
jge 0x41f68a
mov eax, dword [ebx + 0xf4]
mov dword [esp + 0x60], edx
mov dword [esp + 0x64], ecx
mov eax, dword [eax + esi*4]
inc esi
mov eax, dword [eax]
mov dword [esp], eax
call fcn.0042d01a
mov edx, dword [esp + 0x60]
add edi, eax
mov ecx, dword [esp + 0x64]
jmp 0x41f65a
test edi, edi
je 0x41f695
mov eax, ebx
call fcn.0041447e
inc dword [esp + 0x48]
jmp 0x41f584
lea edx, [esp + 0x408]
xor ecx, ecx
mov eax, ebp
call fcn.0041b3fc
lea eax, [esp + 0x408]
mov dword [esp], eax
call fcn.0047c59e
jmp 0x41f6fb
cmp eax, 0xfffffff5
jne 0x41f6eb
mov eax, dword [esp + 0x78]
mov edx, dword [eax]
mov eax, dword [0x7440b4]
mov eax, dword [eax + edx*4]
cmp dword [eax + 8], 0
je 0x41dc32
mov dword [ebp + 0x130], 1
jmp 0x41dc32
test eax, eax
je 0x41f6fb
cmp eax, 0xdfb9b0bb
cmove eax, dword [esp + 0x70]
jmp 0x41f702
xor eax, eax
call fcn.0041a7d4
mov dword [esp + 0x70], eax
jmp 0x41dc32
cmp dword [esp + 0x70], 0xdfb9b0bb
je 0x41dc3f
lea edi, [esp + 0x308]
xor eax, eax
mov ecx, 0x10
lea ebx, [esp + 0x308]
rep stosd dword es:[edi], eax
mov eax, dword [esp + 0x70]
mov dword [esp + 8], 0x40
mov dword [esp + 4], ebx
mov dword [esp], eax
call fcn.00641482
mov dword [esp + 0xc], ebx
mov dword [esp + 8], 0x6c12f7
mov dword [esp + 4], 0x10
mov dword [esp], 0
call fcn.00647705
jmp 0x41f81f
mov edx, dword [0x6b50a4]
mov eax, dword [0x6b50a0]
cmp edx, 0xffffffff
jne 0x41f7a0
cmp eax, 0xffffffff
jne 0x41f7a0
mov eax, dword [esp + 0x80]
mov edx, dword [esp + 0x84]
mov dword [0x6b50a0], eax
mov dword [0x6b50a4], edx
jmp 0x41dc59
mov edi, dword [esp + 0x80]
mov ebp, dword [esp + 0x84]
sub edi, eax
sbb ebp, edx
cmp ebp, 0
jl 0x41dc59
jg 0x41f7c9
cmp edi, 0x7a11f
jbe 0x41dc59
mov edx, dword [esp + 0x84]
mov eax, dword [esp + 0x80]
mov ecx, dword [esp + 0xac]
mov dword [esp + 4], edx
mov dword [0x6b50a4], edx
mov edx, dword [esp + 0xa8]
mov dword [esp], eax
mov dword [0x6b50a0], eax
xor eax, eax
call fcn.00416285
jmp 0x41dc59
mov dword [esp + 8], 0x6c1cc5
mov dword [esp + 4], 0x28
mov dword [esp], 0
call fcn.00647705
xor ebx, ebx
call fcn.004157ad
cmp ebx, dword [0x7440b8]
jge 0x41f853
mov eax, dword [0x7440bc]
mov edx, dword [0x7440b4]
mov eax, dword [eax + ebx*4]
mov ecx, dword [eax]
mov edx, dword [edx + ecx*4]
cmp dword [edx + 4], 0
jne 0x41f850
xor ecx, ecx
xor edx, edx
call fcn.0041b3fc
inc ebx
jmp 0x41f826
mov dword [esp + 0x50], 0
jmp 0x41f8ee
mov eax, dword [ebx + 0x108]
lea edi, [esp + 0x454]
mov ecx, 0xff
mov eax, dword [eax + 8]
mov dword [esp + 0x450], 0
mov dword [esp + 0x48], eax
xor eax, eax
rep stosd dword es:[edi], eax
mov eax, dword [ebx + 0xc]
mov eax, dword [eax]
mov dword [esp + 0x10], eax
mov eax, dword [ebx]
mov dword [esp + 8], 0x6c1b76
mov dword [esp + 4], 0x18
mov dword [esp], 0
mov dword [esp + 0xc], eax
call fcn.00647705
cmp dword [ebx + 0x108], 0
je 0x41fa10
mov eax, dword [esp + 0x48]
xor ecx, ecx
cmp dword [eax + 8], 0
jne 0x41fa10
mov eax, dword [esp + 0x48]
cmp ecx, dword [eax + 0x14]
jl 0x41f98c
call fcn.0041435a
test eax, eax
jne 0x41f9e4
inc dword [esp + 0x50]
mov eax, dword [esp + 0x50]
cmp eax, dword [0x7440a8]
jge 0x41fc25
mov eax, dword [0x7440ac]
mov edi, dword [esp + 0x50]
mov ebx, dword [eax + edi*4]
cmp dword [ebx + 0x10], 0
je 0x41f8ea
mov edx, dword [ebx]
mov eax, dword [0x7440a4]
cmp dword [ebx + 0x138], 0
mov ebp, dword [ebx + 0x50]
mov eax, dword [eax + edx*4]
mov dword [esp + 0x70], eax
je 0x41f860
cmp dword [ebp + 8], 1
jne 0x41fa3f
cmp dword [ebp + 0x164], 1
jle 0x41f8ea
mov eax, dword [ebp + 8]
test eax, eax
je 0x41fa51
dec eax
je 0x41fa4a
mov dword [esp + 0x14], 0x78b
mov dword [esp + 0x10], 0x6c09d0
mov dword [esp + 0xc], 0x6c09e1
mov dword [esp + 8], 0x6c09e3
mov dword [esp + 4], 0
mov dword [esp], 0
call fcn.00647705
call fcn.00697e77
mov eax, dword [esp + 0x48]
mov eax, dword [eax + 0x10]
mov eax, dword [eax + ecx*4]
cmp dword [eax + 0x18], 0
jns 0x41f9de
mov edx, dword [eax + 4]
mov edx, dword [edx + 4]
mov edx, dword [edx + 0xb0]
mov edi, dword [edx + 0x14]
mov esi, dword [edx + 0x60]
mov dword [eax + 0x18], edi
mov edi, dword [edx + 0x6c]
mov dword [eax + 0x2c], edi
mov edi, dword [edx + 0x68]
mov dword [eax + 0x30], edi
mov edi, dword [edx + 0x64]
mov dword [eax + 0x38], esi
mov esi, dword [edx + 0x38]
mov dword [eax + 0x3c], edi
mov edi, dword [edx + 0x30]
mov dword [eax + 0x1c], edi
mov edi, dword [edx + 0x34]
mov dword [eax + 0x20], edi
mov edi, dword [edx + 0x3c]
mov dword [eax + 0x24], esi
mov dword [eax + 0x28], edi
inc ecx
jmp 0x41f8d0
mov eax, dword [esp + 0x48]
mov dword [esp], eax
call fcn.0040d9d9
test eax, eax
jns 0x41fa09
mov dword [esp + 8], 0x6c1bae
mov dword [esp + 4], 0x10
jmp 0x41fd6c
mov eax, ebx
call fcn.004142b9
lea edx, [esp + 0x450]
mov eax, ebx
call fcn.00419142
test eax, eax
jns 0x41f92e
lea eax, [esp + 0x450]
mov dword [esp + 0x14], eax
mov eax, dword [ebx + 4]
mov dword [esp + 0x10], eax
mov eax, dword [ebx]
jmp 0x41dab0
ja 0x41f8ea
jmp 0x41f941
mov esi, 0x6c16b9
jmp 0x41fa56
mov esi, 0x6c16bf
lea eax, [esp + 0x450]
mov dword [esp], eax
call fcn.0047bd83
mov dword [esp], 0
mov dword [esp + 0x468], 0
mov dword [esp + 0x46c], 0
call fcn.0041539c
lea eax, [esp + 0x450]
mov dword [esp], ebp
mov dword [esp + 4], eax
call fcn.0048252c
cmp eax, 0xfffffff5
jne 0x41fab7
mov dword [esp + 4], 0
mov dword [esp], ebp
call fcn.0048249a
test eax, eax
mov edx, eax
jns 0x41fa87
jmp 0x41faeb
mov dword [esp + 0x48], eax
mov eax, dword [ebx + 4]
mov dword [esp + 0xc], eax
mov eax, dword [ebx]
mov dword [esp + 4], esi
mov dword [esp], 0x6c1be6
mov dword [esp + 8], eax
call fcn.0041539c
mov edx, dword [esp + 0x48]
mov eax, edx
shr eax, 0x1f
je 0x41fb3f
cmp edx, 0xdfb9b0bb
je 0x41fb3f
lea edi, [esp + 0x408]
xor eax, eax
mov ecx, 0x10
lea ebx, [esp + 0x408]
rep stosd dword es:[edi], eax
mov dword [esp + 8], 0x40
mov dword [esp + 4], ebx
mov dword [esp], edx
call fcn.00641482
mov dword [esp + 0x10], ebx
mov dword [esp + 0xc], esi
mov dword [esp + 8], 0x6c1bce
mov dword [esp + 4], 8
mov dword [esp], 0
call fcn.00647705
jmp 0x41dad0
mov eax, dword [ebx + 0x104]
test eax, eax
je 0x41fb6f
mov ecx, dword [ebp + 0x22c]
test ecx, ecx
je 0x41fb6f
mov dword [esp + 8], ecx
mov dword [esp + 4], 0x6c0b36
mov dword [esp], eax
mov dword [esp + 0x48], edx
call fcn.00414868
mov edx, dword [esp + 0x48]
cmp edx, 0xdfb9b0bb
jne 0x41fb95
mov eax, dword [esp + 0x70]
lea edx, [esp + 0x450]
mov dword [esp], 1
mov ecx, ebx
call fcn.0041613a
jmp 0x41f8ea
test byte [ebx + 0x12c], 2
je 0x41fbb2
lea eax, [esp + 0x450]
mov dword [esp], eax
call fcn.0047c59e
jmp 0x41f941
mov eax, dword [ebx + 0x38]
mov edx, dword [ebx + 0x3c]
mov dword [esp + 0xc], eax
mov dword [esp + 0x10], edx
mov eax, dword [ebp + 0x4c]
mov edx, dword [ebp + 0x50]
mov dword [esp + 4], eax
lea eax, [esp + 0x450]
mov dword [esp + 8], edx
mov dword [esp], eax
call fcn.0047cb82
mov eax, dword [esp + 0x70]
lea edx, [esp + 0x450]
mov dword [esp], 0
mov ecx, ebx
mov esi, dword [esp + 0x46c]
call fcn.0041613a
mov eax, dword [ebx + 0x50]
cmp dword [eax + 8], 0
jne 0x41f941
cmp dword [0x84da80], 0
je 0x41f941
mov edx, esi
mov eax, ebx
call fcn.0041766b
jmp 0x41f941
lea ebp, [esp + 0x348]
xor ebx, ebx
call fcn.00418a03
cmp ebx, dword [0x7440a0]
jge 0x41fcea
mov eax, dword [0x7440a4]
mov eax, dword [eax + ebx*4]
cmp dword [eax + 0x2c], 0
mov esi, dword [eax]
jne 0x41fc7b
mov eax, dword [esi + 0x420]
mov dword [esp + 0xc], ebx
mov dword [esp + 8], 0x6c1bf5
mov dword [esp + 4], 0x10
mov dword [esp], 0
mov dword [esp + 0x10], eax
call fcn.00647705
jmp 0x41fce4
mov dword [esp], esi
call fcn.00467373
test eax, eax
mov edx, eax
jns 0x41fce4
lea edi, [esp + 0x348]
xor eax, eax
mov ecx, 0x10
rep stosd dword es:[edi], eax
mov dword [esp], edx
mov dword [esp + 8], 0x40
mov dword [esp + 4], ebp
call fcn.00641482
mov dword [esp + 0x10], ebp
mov eax, dword [esi + 0x420]
mov dword [esp + 8], 0x6c1c5d
mov dword [esp + 4], 0x10
mov dword [esp], 0
mov dword [esp + 0xc], eax
call fcn.00647705
cmp dword [0x744030], 0
jne 0x41dad0
inc ebx
jmp 0x41fc33
call fcn.00651226
mov ecx, dword [esp + 0xac]
mov dword [esp + 4], edx
xor esi, esi
mov edx, dword [esp + 0xa8]
mov dword [esp], eax
xor edi, edi
mov eax, 1
xor ebx, ebx
call fcn.00416285
cmp ebx, dword [0x7440a8]
jge 0x41fd49
mov eax, dword [0x7440ac]
mov ebp, dword [eax + ebx*4]
cmp dword [ebp + 0x10], 0
je 0x41fd3a
mov eax, dword [ebp + 0x50]
add eax, 0x230
mov dword [esp], eax
call fcn.006489dc
add esi, dword [ebp + 0x160]
adc edi, dword [ebp + 0x164]
inc ebx
jmp 0x41fd14
mov eax, edi
or eax, esi
jne 0x41fd58
test byte [0x74402c], 1
jne 0x41fd5c
xor ebx, ebx
jmp 0x41fd8c
mov dword [esp + 8], 0x6c1c7e
mov dword [esp + 4], 8
mov dword [esp], 0
call fcn.00647705
jmp 0x41dad0
mov eax, dword [0x7440bc]
mov esi, dword [eax + ebx*4]
cmp dword [esi + 0x10], 0
jne 0x41fd96
inc ebx
cmp ebx, dword [0x7440b8]
jl 0x41fd7d
jmp 0x41fdb5
mov eax, dword [esi + 0x14]
mov dword [esp], eax
call fcn.0069ca43
mov eax, dword [esi + 0x114]
test eax, eax
je 0x41fd8b
mov edx, dword [esi + 0x14]
mov dword [esp], edx
call eax
jmp 0x41fd8b
mov dword [esp], 0x84da74
xor ebp, ebp
call fcn.0063eeb9
call fcn.0040f3ec
call fcn.004157ad
xor esi, esi
cmp dword [0x7440ac], 0
je 0x41ffe4
cmp esi, dword [0x7440a8]
jge 0x41ffe4
mov eax, dword [0x7440ac]
mov ebx, dword [eax + esi*4]
test ebx, ebx
je 0x41fed6
mov eax, dword [ebx + 0x104]
test eax, eax
je 0x41fe74
mov dword [esp], eax
call fcn.00698037
test eax, eax
je 0x41fe6a
lea edi, [esp + 0x450]
call dword [0x924660]
mov ecx, 0x10
mov edx, dword [eax]
xor eax, eax
rep stosd dword es:[edi], eax
lea eax, [esp + 0x450]
mov dword [esp + 8], 0x40
neg edx
mov dword [esp + 4], eax
mov dword [esp], edx
call fcn.00641482
lea eax, [esp + 0x450]
mov dword [esp + 8], 0x6c1c8c
mov dword [esp + 4], 0x10
mov dword [esp], 0
mov dword [esp + 0xc], eax
call fcn.00647705
mov dword [ebx + 0x104], 0
lea eax, [ebx + 0xb8]
mov dword [esp], eax
call fcn.006489dc
lea eax, [ebx + 0x128]
mov dword [esp], eax
call fcn.006489dc
lea eax, [ebx + 0x14c]
mov dword [esp], eax
call fcn.006489dc
lea eax, [ebx + 0x118]
mov dword [esp], eax
call fcn.006408a2
lea eax, [ebx + 0x11c]
mov dword [esp], eax
call fcn.006408a2
lea eax, [ebx + 0x120]
add ebx, 0x124
mov dword [esp], eax
call fcn.006408a2
mov dword [esp], ebx
call fcn.006408a2
inc esi
jmp 0x41fddc
xor ebx, ebx
cmp ebx, dword [0x7440a8]
jge 0x41d616
mov eax, dword [0x7440ac]
mov eax, dword [eax + ebx*4]
inc ebx
mov eax, dword [eax + 0x50]
mov dword [esp], eax
call fcn.0069ca43
jmp 0x41fede
mov dword [esp + 8], 0x6c1cf5
mov dword [esp + 4], 0x30
mov dword [esp], 0
call fcn.00647705
xor eax, eax
mov edx, 0x80000000
jmp 0x41dbbc
call fcn.004143c1
mov dword [esp], 0x2710
call fcn.0065123d
jmp 0x41dc32
mov dword [esp + 8], 0x6c1d46
mov dword [esp + 4], 0x28
mov dword [esp], 0
call fcn.00647705
mov dword [esp + 0x70], 0xdfb9b0bb
jmp 0x41dc32
mov dword [ebp + 0x13c], 1
jmp 0x41dc32
jg 0x41ff80
cmp esi, eax
jbe 0x41eae6
mov eax, esi
sub eax, dword [esp + 0x78]
mov edx, edi
sbb edx, dword [esp + 0x7c]
mov dword [esp + 0x410], eax
mov dword [esp + 0x414], edx
mov dword [ebp + 0x50], 0
jmp 0x41eae6
mov edi, dword [ebp + 4]
mov eax, dword [edi + 0x10]
mov edx, dword [edi + 0x14]
mov dword [esp + 0x10], eax
mov eax, dword [esp + 0x48]
mov dword [esp + 0x14], edx
mov edx, dword [eax + 0x24]
mov eax, dword [eax + 0x20]
mov dword [esp + 8], eax
mov eax, dword [esp + 0x48]
mov dword [esp + 0xc], edx
mov edx, dword [eax + 0x1c]
mov eax, dword [eax + 0x18]
mov dword [esp + 4], edx
mov dword [esp], eax
call fcn.00647ec6
jmp 0x41efb1
add esp, 0x85c
mov eax, ebp
pop ebx
pop esi
pop edi
pop ebp
ret