Function at 0x4df380
Capabilities:
Check os version
Inspect section memory permissions
Resolve function by parsing pe exports

Disassembly:
push 0xffffffffffffffff
push 0x5437cf
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 0x194
push ebx
push ebp
push esi
push edi
mov edi, dword [esp + 0x1b4]
push edi
call fcn.004a7610
mov ebx, eax
add esp, 4
mov ecx, 0x591fd0
mov dword [esp + 0x70], ebx
call fcn.0044e070
lea ecx, [esp + 0x30]
mov dword [esp + 0x44], eax
call fcn.00470b30
mov esi, 0x5478f0
mov dword [esp + 0x30], esi
lea ecx, [esp + 0xa0]
mov dword [esp + 0x1ac], 0
call fcn.00470b30
mov dword [esp + 0xa0], esi
lea ecx, [esp + 0x78]
mov byte [esp + 0x1ac], 1
call fcn.00470b30
mov dword [esp + 0x78], esi
lea ecx, [esp + 0xb4]
mov byte [esp + 0x1ac], 2
call fcn.00470b30
mov dword [esp + 0xb4], esi
lea ecx, [esp + 0x54]
mov byte [esp + 0x1ac], 3
call fcn.00512f21
lea ecx, [esp + 0xdc]
mov byte [esp + 0x1ac], 4
call fcn.00512f21
cmp ebx, 5
mov byte [esp + 0x1ac], 5
je 0x4e28b2
cmp ebx, 8
je 0x4e28b2
cmp ebx, 1
je 0x4e28b2
cmp edi, 0x352
jne 0x4e2bcf
mov eax, dword [esp + 0x1c0]
lea edi, [eax - 1]
test edi, edi
jl 0x4e2bcf
mov ecx, dword [esp + 0x1bc]
mov ebp, dword [esp + 0x1d4]
cmp ebp, 1
mov esi, dword [ecx]
jne 0x4df4c6
cmp byte [esi + edi], 0x23
jne 0x4df4c6
xor ebx, ebx
cmp edi, ebx
jle 0x4df4b5
cmp byte [esi + edi - 1], 0x23
je 0x4e2bcf
mov ecx, dword [esp + 0x1bc]
call fcn.005142c1
jmp 0x4df54d
mov ecx, dword [esp + 0x1b8]
xor ebx, ebx
xor edx, edx
cmp ecx, ebx
sete dl
push edx
push ebx
push 1
lea eax, [esi + edi]
push 1
push eax
push esi
call fcn.004de8b0
add esp, 0x18
cmp eax, ebx
mov dword [esp + 0x10], eax
je 0x4e2bcf
mov ecx, esi
sub ecx, eax
sub eax, esi
lea edx, [ecx + edi + 1]
mov ecx, dword [esp + 0x1bc]
push edx
push eax
lea eax, [esp + 0x78]
push eax
call fcn.00510846
mov esi, dword [esp + 0x1bc]
push eax
mov ecx, esi
mov byte [esp + 0x1b0], 6
call fcn.00514423
lea ecx, [esp + 0x70]
mov byte [esp + 0x1ac], 5
call fcn.00514336
mov ecx, dword [esi]
cmp dword [ecx - 8], ebx
je 0x4e2bcf
cmp ebp, ebx
je 0x4df9a0
mov edx, dword [esp + 0x1bc]
push 0x2e
mov eax, dword [edx]
push eax
mov dword [esp + 0x18], eax
call fcn.00500c00
add esp, 8
cmp eax, ebx
mov dword [esp + 0x94], eax
je 0x4df573
mov byte [eax], 0
mov eax, dword [0x58f614]
mov dword [esp + 0x4c], eax
mov eax, dword [0x59233c]
mov ebp, dword [esp + 0x1cc]
shr eax, 2
mov byte [esp + 0x1ac], 7
mov dword [esp + 0x9c], eax
mov dword [esp + 0x90], ebx
mov ecx, dword [esp + 0x1d8]
push ecx
call fcn.004dbf80
mov eax, dword [esp + 0x94]
add esp, 4
cmp eax, 1
jne 0x4df5d7
mov eax, dword [esp + 0x94]
test eax, eax
mov dword [esp + 0x10], eax
je 0x4df952
mov edx, eax
inc edx
mov dword [esp + 0x10], edx
lea eax, [esp + 0xd0]
lea ecx, [esp + 0x10]
push eax
push ecx
call fcn.004da790
add esp, 8
mov ebx, 1
cmp al, 0x3b
mov byte [esp + 0x14], al
mov dword [esp + 0x1c], ebx
je 0x4df601
cmp al, 0x3a
jne 0x4df632
mov eax, dword [esp + 0xd0]
mov edx, dword [0x591d94]
mov ecx, dword [esp + 0x1d8]
xor ebx, ebx
test eax, eax
mov eax, dword [esp + 0x14]
push edx
mov edx, dword [esp + 0x14]
push eax
sete bl
push ecx
push edx
mov dword [esp + 0x2c], ebx
call dword [0x59277c]
mov eax, dword [esp + 0x90]
xor edi, edi
cmp eax, edi
jne 0x4df84e
mov eax, edi
push 0
push eax
mov ecx, 0x592230
inc edi
call fcn.004cfc50
test eax, eax
je 0x4df6a8
push eax
mov eax, dword [0x592230]
mov ecx, 0x592230
call dword [eax + 0x14]
mov esi, eax
cmp byte [esi], 0
je 0x4df643
mov ecx, dword [esp + 0x1d8]
mov edx, dword [esp + 0x10]
mov eax, dword [esp + 0x14]
push ebx
push esi
push ecx
push edx
push eax
call fcn.004dbf00
add esp, 0x14
test eax, eax
je 0x4df643
mov ecx, dword [ebp + 8]
push esi
push ecx
mov ecx, ebp
call fcn.00513185
mov ecx, dword [esp + 0x1d0]
push 0xe
call fcn.00470df0
jmp 0x4df643
mov eax, dword [esp + 0x9c]
mov dword [esp + 0x50], 0
test eax, eax
jle 0x4df92c
mov eax, dword [esp + 0x50]
mov edx, dword [0x59231c]
mov ecx, dword [esp + 0x44]
push ecx
mov eax, dword [edx + eax*4]
push eax
mov dword [esp + 0x2c], eax
call fcn.004dbc10
add esp, 8
test eax, eax
je 0x4df831
mov eax, dword [esp + 0x24]
xor edi, edi
mov ecx, dword [eax + 0x54]
mov esi, dword [eax + 0x58]
test ecx, ecx
jle 0x4df7d1
mov ecx, dword [esi + 0x14]
test ecx, 0x400000
je 0x4df7c2
test cl, 3
jne 0x4df7c2
mov edx, dword [esp + 0x44]
push edx
push esi
push eax
call fcn.004dbc50
add esp, 0xc
test eax, eax
je 0x4df7be
mov eax, dword [esp + 0x94]
test eax, eax
jne 0x4df76f
mov eax, dword [esi]
mov ecx, dword [esp + 0x1d8]
mov edx, dword [esp + 0x10]
push ebx
push eax
mov eax, dword [esp + 0x1c]
push ecx
push edx
push eax
call fcn.004dbf00
add esp, 0x14
test eax, eax
je 0x4df7be
mov eax, dword [esi]
mov ecx, dword [ebp + 8]
push eax
push ecx
mov ecx, ebp
call fcn.00513185
mov ecx, dword [esp + 0x1d0]
push 2
jmp 0x4df7b9
mov eax, dword [esp + 0x40]
test eax, eax
je 0x4df792
mov ecx, dword [esp + 0x38]
test ecx, ecx
je 0x4df792
shr eax, 2
push esi
push eax
push ecx
call fcn.00471b40
add esp, 0xc
cmp eax, 0xffffffff
jne 0x4df7be
mov ecx, dword [esi]
mov edx, dword [esp + 0x1d8]
mov eax, dword [esp + 0x10]
push ebx
push ecx
mov ecx, dword [esp + 0x1c]
push edx
push eax
push ecx
call fcn.004df320
add esp, 0x14
test eax, eax
je 0x4df7be
push esi
lea ecx, [esp + 0x34]
call fcn.00470df0
mov eax, dword [esp + 0x24]
mov ecx, dword [eax + 0x54]
inc edi
add esi, 0x38
cmp edi, ecx
jl 0x4df6fa
mov ecx, dword [eax + 0x84]
mov esi, dword [eax + 0x88]
xor edi, edi
test ecx, ecx
jle 0x4df831
mov edx, dword [esi]
mov eax, dword [esp + 0x1d8]
mov ecx, dword [esp + 0x10]
push ebx
push edx
mov edx, dword [esp + 0x1c]
push eax
push ecx
push edx
call fcn.004dbf00
add esp, 0x14
test eax, eax
je 0x4df821
mov eax, dword [esi]
mov ecx, dword [ebp + 8]
push eax
push ecx
mov ecx, ebp
call fcn.00513185
mov ecx, dword [esp + 0x1d0]
push 0xa
call fcn.00470df0
mov eax, dword [esp + 0x24]
inc edi
add esi, 0x20
cmp edi, dword [eax + 0x84]
jl 0x4df7e3
mov eax, dword [esp + 0x50]
mov ecx, dword [esp + 0x9c]
inc eax
cmp eax, ecx
mov dword [esp + 0x50], eax
jl 0x4df6c3
jmp 0x4df92c
mov eax, dword [esp + 0x40]
mov dword [esp + 0x20], edi
shr eax, 2
dec eax
mov dword [esp + 0x98], eax
js 0x4df92c
mov ecx, dword [esp + 0x38]
mov edx, dword [esp + 0x20]
xor ebx, ebx
mov edi, dword [ecx + edx*4]
mov ecx, dword [edi + 0x30]
mov eax, dword [edi + 0x34]
test ecx, ecx
jle 0x4df914
lea esi, [eax + 8]
mov eax, dword [esp + 0x1c]
mov ecx, dword [esi]
mov edx, dword [esp + 0x1d8]
push eax
mov eax, dword [esp + 0x14]
push ecx
mov ecx, dword [esp + 0x1c]
push edx
push eax
push ecx
call fcn.004dbf00
add esp, 0x14
test eax, eax
je 0x4df905
mov eax, dword [esp + 0x98]
test eax, eax
jle 0x4df8d2
mov edx, dword [edi]
lea ecx, [esp + 0x4c]
push edx
call fcn.00514473
push 0x584f14
lea ecx, [esp + 0x50]
call fcn.005146c6
jmp 0x4df8db
lea ecx, [esp + 0x4c]
call fcn.005142c1
mov eax, dword [esi]
lea ecx, [esp + 0x4c]
push eax
call fcn.005146c6
mov eax, dword [ebp + 8]
lea ecx, [esp + 0x4c]
push ecx
push eax
mov ecx, ebp
call fcn.005131b1
mov ecx, dword [esp + 0x1d0]
push 0xa
call fcn.00470df0
mov eax, dword [edi + 0x30]
inc ebx
add esi, 0x1c
cmp ebx, eax
jl 0x4df885
mov eax, dword [esp + 0x20]
mov ecx, dword [esp + 0x98]
inc eax
cmp eax, ecx
mov dword [esp + 0x20], eax
jle 0x4df867
mov eax, dword [esp + 0x90]
inc eax
cmp eax, 2
mov dword [esp + 0x90], eax
jl 0x4df5a1
mov eax, dword [esp + 0x94]
test eax, eax
je 0x4df952
mov byte [eax], 0x2e
cmp dword [ebp + 8], 1
jne 0x4df98a
mov eax, dword [ebp + 4]
mov edx, dword [esp + 0x1bc]
mov eax, dword [eax]
mov ecx, dword [edx]
push eax
push ecx
call fcn.004ff36e
add esp, 8
test eax, eax
jne 0x4df98a
push 0xffffffffffffffff
push eax
mov ecx, ebp
call fcn.00512fb4
mov ecx, dword [esp + 0x1d0]
call fcn.00470d30
lea ecx, [esp + 0x4c]
mov byte [esp + 0x1ac], 5
call fcn.00514336
jmp 0x4e2bcf
lea ecx, [esp + 0x104]
call fcn.00512f21
mov edi, dword [esp + 0x1bc]
mov byte [esp + 0x1ac], 8
push 0x2e
mov ecx, edi
call fcn.005147b1
mov esi, eax
cmp esi, 0xffffffff
je 0x4dfa66
lea eax, [esp + 0x70]
push esi
push eax
mov ecx, edi
call fcn.00510958
mov ecx, dword [esp + 0x10c]
push eax
push ecx
lea ecx, [esp + 0x10c]
mov byte [esp + 0x1b4], 9
call fcn.005131b1
lea ecx, [esp + 0x70]
mov byte [esp + 0x1ac], 8
call fcn.00514336
mov edx, dword [edi]
mov ecx, edi
mov eax, dword [edx - 8]
sub eax, esi
dec eax
push eax
lea eax, [esp + 0x70]
push eax
call fcn.005108dc
push eax
mov ecx, edi
mov byte [esp + 0x1b0], 0xa
call fcn.00514423
lea ecx, [esp + 0x6c]
mov byte [esp + 0x1ac], 8
call fcn.00514336
mov ecx, dword [edi]
cmp dword [ecx - 8], ebx
jne 0x4df9bb
mov edx, dword [esp + 0x10c]
push 0x591750
push edx
lea ecx, [esp + 0x10c]
call fcn.00513185
jmp 0x4dfa7b
mov eax, dword [esp + 0x10c]
push edi
push eax
lea ecx, [esp + 0x10c]
call fcn.005131b1
mov eax, dword [esp + 0x10c]
mov ebp, eax
cmp eax, ebx
mov dword [esp + 0x90], ebp
jne 0x4dfaa8
lea ecx, [esp + 0x104]
mov byte [esp + 0x1ac], 5
call fcn.00512f54
jmp 0x4e2bcf
xor edi, edi
cmp eax, ebx
jle 0x4dfbe7
mov ecx, dword [esp + 0x108]
lea edx, [ecx + edi*4]
mov ecx, dword [esp + 0x1bc]
push edx
call fcn.00514423
mov ecx, dword [esp + 0x1bc]
push 0x5b
xor esi, esi
call fcn.005147b1
cmp eax, 0xffffffff
je 0x4dfb18
mov esi, dword [esp + 0x1bc]
push eax
lea eax, [esp + 0x74]
mov ecx, esi
push eax
call fcn.00510958
push eax
mov ecx, esi
mov byte [esp + 0x1b0], 0xb
call fcn.00514423
lea ecx, [esp + 0x70]
mov byte [esp + 0x1ac], 8
call fcn.00514336
mov esi, 1
cmp dword [esp + 0x1b8], ebx
jne 0x4dfbbc
mov ecx, dword [esp + 0x1bc]
push 0x28
call fcn.005147b1
cmp eax, 0xffffffff
jne 0x4dfb4e
mov ecx, dword [esp + 0x1bc]
push 0x58ac94
call fcn.005109f2
cmp eax, 0xffffffff
je 0x4dfbbc
lea ecx, [ebp - 1]
cmp edi, ecx
je 0x4dfa8f
mov esi, dword [esp + 0x1bc]
lea edx, [esp + 0x9c]
push eax
push edx
mov ecx, esi
call fcn.00510958
push eax
lea eax, [esp + 0x70]
push 0x28
push eax
mov byte [esp + 0x1b8], 0xc
call fcn.005105fd
push eax
mov ecx, esi
mov byte [esp + 0x1b0], 0xd
call fcn.00514423
lea ecx, [esp + 0x6c]
mov byte [esp + 0x1ac], 0xc
call fcn.00514336
lea ecx, [esp + 0x9c]
mov byte [esp + 0x1ac], 8
call fcn.00514336
jmp 0x4dfbc0
cmp esi, ebx
je 0x4dfbde
mov esi, dword [esp + 0x1bc]
mov ecx, esi
call fcn.00510d46
mov ecx, dword [esp + 0x108]
push esi
lea ecx, [ecx + edi*4]
call fcn.00514423
inc edi
cmp edi, ebp
jl 0x4dfab2
mov ecx, 0x591fd0
mov dword [esp + 0x8c], ebx
call fcn.00453440
mov esi, eax
mov ecx, 0x591fd0
mov dword [esp + 0xf4], esi
call fcn.00453450
cmp esi, ebx
mov dword [esp + 0x70], eax
je 0x4dfc60
mov eax, dword [esp + 0x1c4]
cmp eax, ebx
je 0x4dfc60
mov edx, eax
mov eax, dword [edx + 0x40]
cmp eax, ebx
je 0x4dfc60
push eax
call fcn.004cfba0
add esp, 4
cmp eax, 0x2000000
jne 0x4dfc60
mov ecx, dword [esp + 0x1c4]
lea eax, [esp + 0x8c]
push ebx
push eax
mov edx, dword [ecx + 0x40]
mov ecx, 0x592214
push edx
call fcn.004d0460
test eax, eax
jne 0x4dfc60
mov dword [esp + 0x8c], ebx
mov eax, dword [0x58f614]
mov dword [esp + 0x2c], eax
push ebx
mov ecx, 0x591fd0
mov byte [esp + 0x1b0], 0xe
call fcn.0044e7f0
mov ecx, 0x591fd0
mov dword [esp + 0x4c], eax
call fcn.0044d650
mov dword [esp + 0x94], eax
mov eax, dword [0x59233c]
shr eax, 2
cmp ebp, ebx
mov dword [esp + 0x98], eax
mov dword [esp + 0x9c], ebx
jle 0x4e276d
mov ebx, dword [esp + 0x1cc]
mov esi, dword [esp + 0x1bc]
mov ebp, dword [esp + 0x9c]
mov edi, 0x5477b0
jmp 0x4dfcde
mov ebx, dword [esp + 0x1cc]
mov esi, dword [esp + 0x1bc]
mov edi, 0x5477b0
mov ecx, dword [esp + 0x1d8]
push ecx
call fcn.004dbf80
add esp, 4
lea ecx, [esp + 0xa0]
call fcn.00470d30
mov ecx, dword [esp + 0x40]
mov edx, dword [esp + 0x38]
mov eax, ecx
push ecx
neg eax
sbb eax, eax
lea ecx, [esp + 0xa4]
and eax, edx
push eax
call fcn.004713f0
lea ecx, [esp + 0x30]
call fcn.00470d30
lea ecx, [esp + 0xb4]
call fcn.00470d30
mov ecx, dword [esp + 0x88]
mov edx, dword [esp + 0x80]
mov eax, ecx
push ecx
neg eax
sbb eax, eax
lea ecx, [esp + 0xb8]
and eax, edx
push eax
call fcn.004713f0
lea ecx, [esp + 0x78]
call fcn.00470d30
push 0xffffffffffffffff
push 0
lea ecx, [esp + 0xe4]
call fcn.00512fb4
lea edx, [esp + 0x54]
lea ecx, [esp + 0xdc]
push edx
call fcn.005130fd
push 0xffffffffffffffff
push 0
lea ecx, [esp + 0x5c]
call fcn.00512fb4
mov eax, dword [esp + 0x108]
lea ecx, [eax + ebp*4]
push ecx
mov ecx, esi
call fcn.00514423
mov ecx, dword [esp + 0x1b8]
mov eax, dword [esi]
test ecx, ecx
mov dword [esp + 0x10], eax
jne 0x4dfdc3
cmp byte [eax], 0x28
jne 0x4dfdc3
mov esi, 1
inc eax
mov dword [esp + 0xd8], esi
mov dword [esp + 0x10], eax
jmp 0x4dfdcc
xor esi, esi
mov dword [esp + 0xd8], esi
lea edx, [esp + 0xd0]
lea eax, [esp + 0x10]
push edx
push eax
call fcn.004da790
add esp, 8
cmp al, 0x3b
mov byte [esp + 0x14], al
mov dword [esp + 0x1c], 1
je 0x4dfdf5
cmp al, 0x3a
jne 0x4dfe26
mov edx, dword [esp + 0xd0]
mov eax, dword [esp + 0x14]
xor ecx, ecx
test edx, edx
mov edx, dword [0x591d94]
sete cl
mov dword [esp + 0x1c], ecx
mov ecx, dword [esp + 0x1d8]
push edx
mov edx, dword [esp + 0x14]
push eax
push ecx
push edx
call dword [0x59277c]
mov ecx, dword [esp + 0x90]
lea eax, [ecx - 1]
cmp ebp, eax
jge 0x4e13a4
mov eax, dword [esp + 0xb0]
shr eax, 2
mov dword [esp + 0xfc], eax
jne 0x4e07ee
test ebp, ebp
jne 0x4e2809
test esi, esi
je 0x4e0135
mov ebp, dword [esp + 0x1d8]
mov ebx, dword [esp + 0x14]
mov edi, dword [esp + 0x1c]
xor esi, esi
lea ecx, [esp + 0x28]
mov eax, esi
push ecx
push eax
mov ecx, 0x5921c0
inc esi
call fcn.004d03c0
test eax, eax
je 0x4dff63
mov edx, dword [esp + 0x28]
mov eax, dword [edx + 8]
test eax, eax
je 0x4dfef0
push eax
call fcn.004cfb80
add esp, 4
xor ecx, ecx
cmp eax, 0x40000000
sete cl
mov eax, ecx
test eax, eax
je 0x4dfef0
mov ecx, dword [esp + 0x28]
mov eax, dword [esp + 0x1c8]
mov edx, dword [ecx + 8]
cmp edx, dword [eax + 8]
jne 0x4dfe70
mov eax, dword [0x58c8dc]
mov ecx, dword [ecx]
push eax
push ecx
call fcn.004ff36e
add esp, 8
test eax, eax
je 0x4dfe70
mov ecx, dword [esp + 0x28]
mov eax, dword [0x58c8e0]
push eax
mov ecx, dword [ecx]
push ecx
call fcn.004ff36e
add esp, 8
test eax, eax
je 0x4dfe70
mov edx, dword [esp + 0x28]
push edi
mov eax, dword [edx]
push eax
mov eax, dword [esp + 0x18]
push ebp
push eax
push ebx
call fcn.004df320
add esp, 0x14
test eax, eax
je 0x4dfe70
mov ecx, dword [esp + 0x28]
mov edx, dword [ecx + 0x10]
lea ecx, [esp + 0x30]
push edx
call fcn.00470df0
push 0
lea ecx, [esp + 0x7c]
call fcn.00470df0
mov ecx, dword [esp + 0x28]
push 0xffff
push 0
lea eax, [esp + 0x34]
mov edx, dword [ecx + 0x10]
push 0
push eax
push edx
mov ecx, 0x591fd0
call fcn.0044efb0
mov ecx, dword [esp + 0x5c]
lea eax, [esp + 0x2c]
push eax
push ecx
lea ecx, [esp + 0x5c]
call fcn.005131b1
jmp 0x4dfe70
xor esi, esi
lea edx, [esp + 0xcc]
mov eax, esi
push edx
push eax
mov ecx, 0x5921f8
inc esi
call fcn.004d03c0
test eax, eax
je 0x4dfff7
mov eax, dword [esp + 0xcc]
mov ecx, dword [esp + 0x10]
push edi
mov eax, dword [eax]
push eax
push ebp
push ecx
push ebx
call fcn.004df320
add esp, 0x14
test eax, eax
je 0x4dff65
mov edx, dword [esp + 0xcc]
lea ecx, [esp + 0x30]
mov eax, dword [edx + 0xc]
push eax
call fcn.00470df0
push 0
lea ecx, [esp + 0x7c]
call fcn.00470df0
mov edx, dword [esp + 0xcc]
push 0xffff
push 0
lea ecx, [esp + 0x34]
mov eax, dword [edx + 0xc]
push 0
push ecx
push eax
mov ecx, 0x591fd0
call fcn.0044efb0
mov edx, dword [esp + 0x5c]
lea ecx, [esp + 0x2c]
push ecx
push edx
lea ecx, [esp + 0x5c]
call fcn.005131b1
jmp 0x4dff65
mov eax, dword [esp + 0x98]
xor ebx, ebx
test eax, eax
jle 0x4e274f
mov eax, dword [0x59231c]
mov ecx, dword [esp + 0x44]
push ecx
mov eax, dword [eax + ebx*4]
push eax
mov dword [esp + 0x2c], eax
call fcn.004dbc10
add esp, 8
test eax, eax
je 0x4e0120
mov eax, dword [esp + 0x24]
xor ebp, ebp
mov ecx, dword [eax + 0x64]
mov edi, dword [eax + 0x68]
test ecx, ecx
jle 0x4e0120
mov edx, dword [esp + 0x44]
push edx
push edi
push eax
call fcn.004dbcb0
add esp, 0xc
cmp eax, 1
jne 0x4e010f
test byte [edi + 0xe], 0xc
jne 0x4e010f
cmp word [edi + 0xc], 0xffff
je 0x4e010f
mov eax, dword [esp + 0x1c]
mov ecx, dword [edi]
mov edx, dword [esp + 0x1d8]
push eax
mov eax, dword [esp + 0x14]
push ecx
mov ecx, dword [esp + 0x1c]
push edx
push eax
push ecx
call fcn.004df320
add esp, 0x14
test eax, eax
je 0x4e010f
mov esi, dword [edi + 0x10]
push esi
call fcn.004dc2d0
add esp, 4
cmp eax, 3
jne 0x4e00c6
mov edx, esi
shr edx, 0x10
jne 0x4e00c6
lea eax, [ebx + 1]
and esi, 0xffff
and eax, 0xffff
shl eax, 0x10
or esi, eax
test ebx, ebx
jle 0x4e00c6
or esi, 0x20000000
push esi
lea ecx, [esp + 0x34]
call fcn.00470df0
push 0
lea ecx, [esp + 0x7c]
call fcn.00470df0
push 0xffff
push 0
lea ecx, [esp + 0x34]
push 0
and esi, 0xdfffffff
push ecx
push esi
push 0
mov ecx, 0x591f10
call fcn.00462a80
mov eax, dword [esp + 0x5c]
lea edx, [esp + 0x2c]
push edx
push eax
lea ecx, [esp + 0x5c]
call fcn.005131b1
mov eax, dword [esp + 0x24]
inc ebp
add edi, 0x24
cmp ebp, dword [eax + 0x64]
jl 0x4e003e
mov eax, dword [esp + 0x98]
inc ebx
cmp ebx, eax
jl 0x4e0008
jmp 0x4e274f
mov eax, dword [esp + 0xf4]
test eax, eax
je 0x4e0204
mov eax, dword [esp + 0x1b8]
test eax, eax
jne 0x4e0204
mov ebp, dword [esp + 0x1d8]
mov edi, dword [esp + 0x1c]
mov ebx, dword [esp + 0x14]
xor esi, esi
lea ecx, [esp + 0x48]
mov eax, esi
push ecx
push eax
mov ecx, 0x592214
inc esi
call fcn.004d03c0
test eax, eax
je 0x4e0204
lea edx, [esi - 1]
mov ecx, 0x592214
push edx
call fcn.004d0400
mov ecx, dword [esp + 0x40]
mov dword [esp + 0x18], eax
test ecx, ecx
je 0x4e01b4
mov edx, dword [esp + 0x38]
test edx, edx
je 0x4e01b4
shr ecx, 2
push eax
push ecx
push edx
call fcn.00471b40
add esp, 0xc
cmp eax, 0xffffffff
jne 0x4e0164
mov eax, dword [esp + 0x48]
mov ecx, dword [esp + 0x10]
push edi
mov eax, dword [eax + 0xc]
push eax
push ebp
push ecx
push ebx
call fcn.004df320
add esp, 0x14
test eax, eax
je 0x4e0164
mov edx, dword [esp + 0x18]
lea ecx, [esp + 0x30]
push edx
call fcn.00470df0
push 0
lea ecx, [esp + 0x7c]
call fcn.00470df0
mov eax, dword [esp + 0x48]
mov ecx, dword [esp + 0x5c]
add eax, 0xc
push eax
push ecx
lea ecx, [esp + 0x5c]
call fcn.005131b1
jmp 0x4e0164
mov eax, dword [esp + 0x1c4]
test eax, eax
je 0x4e02df
mov ecx, dword [eax + 0x44]
test ecx, ecx
je 0x4e02df
mov ebp, dword [esp + 0x1d8]
mov ebx, dword [esp + 0x14]
mov edi, dword [esp + 0x1c]
xor esi, esi
lea edx, [esp + 0x68]
mov eax, esi
push edx
push eax
mov ecx, 0x5921dc
inc esi
call fcn.004d03c0
test eax, eax
je 0x4e02df
lea eax, [esi - 1]
mov ecx, 0x5921dc
push eax
call fcn.004d0400
push eax
mov dword [esp + 0x1c], eax
call fcn.004cfb80
add esp, 4
cmp eax, 0x40000000
jne 0x4e022f
mov eax, dword [esp + 0x40]
test eax, eax
je 0x4e0293
mov ecx, dword [esp + 0x38]
test ecx, ecx
je 0x4e0293
mov edx, dword [esp + 0x18]
shr eax, 2
push edx
push eax
push ecx
call fcn.00471b40
add esp, 0xc
cmp eax, 0xffffffff
jne 0x4e022f
mov eax, dword [esp + 0x68]
mov ecx, dword [esp + 0x10]
push edi
mov eax, dword [eax]
push eax
push ebp
push ecx
push ebx
call fcn.004df320
add esp, 0x14
test eax, eax
je 0x4e022f
mov edx, dword [esp + 0x18]
lea ecx, [esp + 0x30]
push edx
call fcn.00470df0
push 1
lea ecx, [esp + 0x7c]
call fcn.00470df0
mov eax, dword [esp + 0x68]
mov ecx, dword [esp + 0x5c]
push eax
push ecx
lea ecx, [esp + 0x5c]
call fcn.005131b1
jmp 0x4e022f
mov eax, dword [esp + 0x8c]
test eax, eax
je 0x4e04de
mov eax, dword [esp + 0x1b8]
test eax, eax
jne 0x4e04de
mov eax, dword [esp + 0x40]
test eax, eax
je 0x4e0328
mov ecx, dword [esp + 0x38]
test ecx, ecx
je 0x4e0328
shr eax, 2
push 0x10004
push eax
push ecx
call fcn.00471b40
add esp, 0xc
cmp eax, 0xffffffff
jne 0x4e0428
mov ebx, dword [esp + 0x4c]
xor edi, edi
mov eax, dword [ebx + 0x24]
mov esi, dword [ebx + 0x28]
test eax, eax
jle 0x4e0428
mov ebp, dword [esp + 0x1c]
mov edx, dword [esp + 0x44]
mov eax, dword [esp + 0x94]
push edx
push esi
push eax
call fcn.004dbcb0
add esp, 0xc
test eax, eax
je 0x4e038a
cmp word [esi + 0xc], 0x3f5
jne 0x4e038a
test byte [esi + 0xe], 0x10
jne 0x4e038a
mov ecx, dword [esi]
mov edx, dword [esp + 0x1d8]
mov eax, dword [esp + 0x10]
push ebp
push ecx
mov ecx, dword [esp + 0x1c]
push edx
push eax
push ecx
call fcn.004df320
add esp, 0x14
test eax, eax
jne 0x4e039a
mov eax, dword [ebx + 0x24]
inc edi
add esi, 0x14
cmp edi, eax
jl 0x4e0340
jmp 0x4e0428
push 0x10004
lea ecx, [esp + 0x34]
call fcn.00470df0
push 0
lea ecx, [esp + 0x7c]
call fcn.00470df0
mov edx, dword [esp + 0x8c]
push 0x584f14
add edx, 0xc
lea eax, [esp + 0x124]
push edx
push eax
call fcn.0051457f
mov ecx, dword [esi]
lea edx, [esp + 0x11c]
push ecx
push eax
push edx
mov byte [esp + 0x1b8], 0xf
call fcn.0051457f
push eax
mov eax, dword [esp + 0x60]
push eax
lea ecx, [esp + 0x5c]
mov byte [esp + 0x1b4], 0x10
call fcn.005131b1
lea ecx, [esp + 0x11c]
mov byte [esp + 0x1ac], 0xf
call fcn.00514336
lea ecx, [esp + 0x120]
mov byte [esp + 0x1ac], 0xe
call fcn.00514336
mov ebx, dword [esp + 0x1c]
mov ebp, dword [esp + 0x14]
mov edi, 1
mov ecx, dword [esp + 0x8c]
mov eax, edi
push 0
push eax
add ecx, 0x14
inc edi
call fcn.004cfc50
mov esi, eax
test esi, esi
je 0x4e04de
mov eax, dword [esp + 0x40]
mov ecx, dword [esi]
test eax, eax
mov dword [esp + 0x18], ecx
je 0x4e047d
mov edx, dword [esp + 0x38]
test edx, edx
je 0x4e047d
shr eax, 2
push ecx
push eax
push edx
call fcn.00471b40
add esp, 0xc
cmp eax, 0xffffffff
jne 0x4e0435
mov edx, dword [esp + 0x8c]
push esi
mov eax, dword [edx + 0x14]
lea ecx, [edx + 0x14]
call dword [eax + 0x14]
mov esi, eax
cmp byte [esi], 0
je 0x4e0435
mov ecx, dword [esp + 0x1d8]
mov edx, dword [esp + 0x10]
push ebx
push esi
push ecx
push edx
push ebp
call fcn.004df320
add esp, 0x14
test eax, eax
je 0x4e0435
mov eax, dword [esp + 0x18]
lea ecx, [esp + 0x30]
push eax
call fcn.00470df0
push 0
lea ecx, [esp + 0x7c]
call fcn.00470df0
mov ecx, dword [esp + 0x5c]
push esi
push ecx
lea ecx, [esp + 0x5c]
call fcn.00513185
jmp 0x4e0435
mov ebp, dword [esp + 0x1c8]
test ebp, ebp
je 0x4e0663
xor ebx, ebx
lea edi, [ebp + 0x14]
mov eax, ebx
push 0
push eax
mov ecx, edi
inc ebx
call fcn.004cfc50
mov esi, eax
test esi, esi
je 0x4e05a8
mov eax, dword [esi]
push eax
mov dword [esp + 0x1c], eax
call fcn.004dc2d0
add esp, 4
cmp eax, 2
je 0x4e0522
cmp eax, 3
jne 0x4e04f2
mov eax, dword [esp + 0x40]
test eax, eax
je 0x4e0549
mov ecx, dword [esp + 0x38]
test ecx, ecx
je 0x4e0549
mov edx, dword [esp + 0x18]
shr eax, 2
push edx
push eax
push ecx
call fcn.00471b40
add esp, 0xc
cmp eax, 0xffffffff
jne 0x4e04f2
mov eax, dword [edi]
push esi
mov ecx, edi
call dword [eax + 0x14]
mov ecx, dword [esp + 0x1c]
mov edx, dword [esp + 0x1d8]
mov esi, eax
mov eax, dword [esp + 0x10]
push ecx
mov ecx, dword [esp + 0x18]
push esi
push edx
push eax
push ecx
call fcn.004df320
add esp, 0x14
test eax, eax
je 0x4e04f2
mov edx, dword [esp + 0x18]
lea ecx, [esp + 0x30]
push edx
call fcn.00470df0
push 0
lea ecx, [esp + 0x7c]
call fcn.00470df0
mov eax, dword [esp + 0x5c]
push esi
push eax
lea ecx, [esp + 0x5c]
call fcn.00513185
jmp 0x4e04f2
xor ebx, ebx
lea edi, [ebp + 0x34]
mov eax, ebx
push 0
push eax
mov ecx, edi
inc ebx
call fcn.004cfc50
mov esi, eax
test esi, esi
je 0x4e0663
mov eax, dword [esi]
push eax
mov dword [esp + 0x1c], eax
call fcn.004dc2d0
add esp, 4
cmp eax, 2
je 0x4e05dd
cmp eax, 3
jne 0x4e05ad
mov eax, dword [esp + 0x40]
test eax, eax
je 0x4e0604
mov ecx, dword [esp + 0x38]
test ecx, ecx
je 0x4e0604
mov edx, dword [esp + 0x18]
shr eax, 2
push edx
push eax
push ecx
call fcn.00471b40
add esp, 0xc
cmp eax, 0xffffffff
jne 0x4e05ad
mov eax, dword [edi]
push esi
mov ecx, edi
call dword [eax + 0x14]
mov ecx, dword [esp + 0x1c]
mov edx, dword [esp + 0x1d8]
mov esi, eax
mov eax, dword [esp + 0x10]
push ecx
mov ecx, dword [esp + 0x18]
push esi
push edx
push eax
push ecx
call fcn.004df320
add esp, 0x14
test eax, eax
je 0x4e05ad
mov edx, dword [esp + 0x18]
lea ecx, [esp + 0x30]
push edx
call fcn.00470df0
push 0
lea ecx, [esp + 0x7c]
call fcn.00470df0
mov eax, dword [esp + 0x5c]
push esi
push eax
lea ecx, [esp + 0x5c]
call fcn.00513185
jmp 0x4e05ad
mov eax, dword [esp + 0x1c4]
test eax, eax
je 0x4e072d
mov ebp, dword [esp + 0x1c]
xor ebx, ebx
lea edi, [eax + 0xc]
mov eax, ebx
push 0
push eax
mov ecx, edi
inc ebx
call fcn.004cfc50
mov esi, eax
test esi, esi
je 0x4e072d
mov eax, dword [esi]
push eax
mov dword [esp + 0x1c], eax
call fcn.004dc2d0
add esp, 4
cmp eax, 2
je 0x4e06ab
cmp eax, 3
jne 0x4e067b
mov eax, dword [esp + 0x40]
test eax, eax
je 0x4e06d2
mov ecx, dword [esp + 0x38]
test ecx, ecx
je 0x4e06d2
mov edx, dword [esp + 0x18]
shr eax, 2
push edx
push eax
push ecx
call fcn.00471b40
add esp, 0xc
cmp eax, 0xffffffff
jne 0x4e067b
mov eax, dword [edi]
push esi
mov ecx, edi
call dword [eax + 0x14]
mov ecx, dword [esp + 0x1d8]
mov edx, dword [esp + 0x10]
mov esi, eax
mov eax, dword [esp + 0x14]
push ebp
push esi
push ecx
push edx
push eax
call fcn.004df320
add esp, 0x14
test eax, eax
je 0x4e067b
mov ecx, dword [esp + 0x18]
push ecx
lea ecx, [esp + 0x34]
call fcn.00470df0
push 0
lea ecx, [esp + 0x7c]
call fcn.00470df0
mov edx, dword [esp + 0x5c]
push esi
push edx
lea ecx, [esp + 0x5c]
call fcn.00513185
jmp 0x4e067b
xor edi, edi
mov eax, edi
push 0
push eax
mov ecx, 0x5921a0
inc edi
call fcn.004cfc50
mov esi, eax
test esi, esi
je 0x4e274f
mov eax, dword [esi]
push eax
mov dword [esp + 0x1c], eax
call fcn.004dc2d0
add esp, 4
cmp eax, 2
je 0x4e0762
cmp eax, 3
jne 0x4e072f
mov eax, dword [esp + 0x40]
test eax, eax
je 0x4e0789
mov ecx, dword [esp + 0x38]
test ecx, ecx
je 0x4e0789
mov edx, dword [esp + 0x18]
shr eax, 2
push edx
push eax
push ecx
call fcn.00471b40
add esp, 0xc
cmp eax, 0xffffffff
jne 0x4e072f
mov eax, dword [0x5921a0]
push esi
mov ecx, 0x5921a0
call dword [eax + 0x14]
mov ecx, dword [esp + 0x1c]
mov edx, dword [esp + 0x1d8]
mov esi, eax
mov eax, dword [esp + 0x10]
push ecx
mov ecx, dword [esp + 0x18]
push esi
push edx
push eax
push ecx
call fcn.004df320
add esp, 0x14
test eax, eax
je 0x4e072f
mov edx, dword [esp + 0x18]
lea ecx, [esp + 0x30]
push edx
call fcn.00470df0
push 0
lea ecx, [esp + 0x7c]
call fcn.00470df0
mov eax, dword [esp + 0x5c]
push esi
push eax
lea ecx, [esp + 0x5c]
call fcn.00513185
jmp 0x4e072f
test eax, eax
mov dword [esp + 0x50], 0
jle 0x4e274f
mov ecx, dword [esp + 0xa8]
mov esi, dword [esp + 0x50]
push 1
lea eax, [esp + 0x1c]
mov edx, dword [ecx + esi*4]
push 1
push eax
mov ecx, 0x591fd0
mov dword [esp + 0x24], edx
call fcn.004465f0
mov ecx, dword [esp + 0xbc]
mov edx, dword [esp + 0x18]
push edx
mov ebx, dword [ecx + esi*4]
call fcn.004dc2d0
add esp, 4
cmp eax, 2
jne 0x4e0f27
mov eax, dword [esp + 0x18]
push eax
call fcn.004db4a0
add esp, 4
cmp eax, 2
jne 0x4e0b0c
mov eax, dword [esp + 0x1b8]
test eax, eax
jne 0x4e1387
mov edx, dword [esp + 0x18]
lea ecx, [esp + 0x48]
push 0
push ecx
push edx
mov ecx, 0x592214
call fcn.004d0460
test eax, eax
je 0x4e0afe
mov ebx, dword [esp + 0xd8]
test ebx, ebx
jne 0x4e0944
mov ebp, dword [esp + 0x1c]
mov edi, 1
mov eax, edi
push 0
push eax
mov eax, dword [esp + 0x50]
inc edi
lea ecx, [eax + 0x14]
call fcn.004cfc50
mov esi, eax
test esi, esi
je 0x4e0948
mov eax, dword [esp + 0x40]
mov ecx, dword [esi]
test eax, eax
mov dword [esp + 0x18], ecx
je 0x4e08e3
mov edx, dword [esp + 0x38]
test edx, edx
je 0x4e08e3
shr eax, 2
push ecx
push eax
push edx
call fcn.00471b40
add esp, 0xc
cmp eax, 0xffffffff
jne 0x4e089e
mov ecx, dword [esp + 0x48]
push esi
add ecx, 0x14
mov edx, dword [ecx]
call dword [edx + 0x14]
mov esi, eax
cmp byte [esi], 0
je 0x4e089e
mov eax, dword [esp + 0x1d8]
mov ecx, dword [esp + 0x10]
mov edx, dword [esp + 0x14]
push ebp
push esi
push eax
push ecx
push edx
call fcn.004df320
add esp, 0x14
test eax, eax
je 0x4e089e
mov eax, dword [esp + 0x18]
lea ecx, [esp + 0x30]
push eax
call fcn.00470df0
push 0
lea ecx, [esp + 0x7c]
call fcn.00470df0
mov ecx, dword [esp + 0x5c]
push esi
push ecx
lea ecx, [esp + 0x5c]
call fcn.00513185
jmp 0x4e089e
mov ebp, dword [esp + 0x1c]
mov edx, dword [esp + 0x48]
mov eax, dword [edx + 8]
test eax, eax
je 0x4e0afe
lea ecx, [esp + 0x100]
push 0
push ecx
push eax
mov ecx, 0x5921dc
call fcn.004d0460
cmp eax, 1
jne 0x4e0afe
test ebx, ebx
jne 0x4e0a42
mov ebx, dword [esp + 0x14]
xor edi, edi
mov edx, dword [esp + 0x100]
mov eax, edi
push 0
push eax
lea ecx, [edx + 0xc]
inc edi
call fcn.004cfc50
mov esi, eax
test esi, esi
je 0x4e0afe
mov eax, dword [esi]
push eax
mov dword [esp + 0x1c], eax
call fcn.004dc2d0
add esp, 4
cmp eax, 2
je 0x4e09bb
cmp eax, 3
jne 0x4e0983
mov eax, dword [esp + 0x40]
test eax, eax
je 0x4e09e2
mov ecx, dword [esp + 0x38]
test ecx, ecx
je 0x4e09e2
mov edx, dword [esp + 0x18]
shr eax, 2
push edx
push eax
push ecx
call fcn.00471b40
add esp, 0xc
cmp eax, 0xffffffff
jne 0x4e0983
mov eax, dword [esp + 0x100]
push esi
mov edx, dword [eax + 0xc]
lea ecx, [eax + 0xc]
call dword [edx + 0x14]
mov ecx, dword [esp + 0x10]
mov esi, eax
mov eax, dword [esp + 0x1d8]
push ebp
push esi
push eax
push ecx
push ebx
call fcn.004df320
add esp, 0x14
test eax, eax
je 0x4e0983
mov edx, dword [esp + 0x18]
lea ecx, [esp + 0x30]
push edx
call fcn.00470df0
push 0
lea ecx, [esp + 0x7c]
call fcn.00470df0
mov eax, dword [esp + 0x5c]
push esi
push eax
lea ecx, [esp + 0x5c]
call fcn.00513185
jmp 0x4e0983
mov eax, dword [esp + 0x100]
mov ecx, dword [eax + 0x3c]
test ecx, ecx
jne 0x4e0a54
xor esi, esi
jmp 0x4e0a57
mov esi, dword [eax + 0x34]
mov eax, dword [eax + 0x3c]
shr eax, 2
test eax, eax
jle 0x4e0afe
mov edi, eax
mov edx, dword [esi]
lea ecx, [esp + 0x28]
push 0
push ecx
push edx
mov ecx, 0x5921c0
call fcn.004d0460
test eax, eax
je 0x4e0af4
mov eax, dword [esp + 0x28]
mov ecx, dword [esp + 0x1d8]
mov edx, dword [esp + 0x10]
push ebp
mov eax, dword [eax]
push eax
mov eax, dword [esp + 0x1c]
push ecx
push edx
push eax
call fcn.004df320
add esp, 0x14
test eax, eax
je 0x4e0af4
mov ecx, dword [esp + 0x28]
mov eax, dword [ecx + 0x10]
lea ecx, [esp + 0x30]
push eax
call fcn.00470df0
push 0
lea ecx, [esp + 0x7c]
call fcn.00470df0
mov eax, dword [esp + 0x28]
push 0xffff
push 0
lea edx, [esp + 0x34]
mov ecx, dword [eax + 0x10]
push 0
push edx
push ecx
mov ecx, 0x591fd0
call fcn.0044efb0
mov eax, dword [esp + 0x5c]
lea edx, [esp + 0x2c]
push edx
push eax
lea ecx, [esp + 0x5c]
call fcn.005131b1
add esi, 4
dec edi
jne 0x4e0a67
mov eax, 0x10001
mov dword [esp + 0x18], eax
jmp 0x4e0f34
mov ecx, dword [esp + 0x18]
push ecx
call fcn.004db4a0
add esp, 4
cmp eax, 1
jne 0x4e0c84
mov eax, dword [esp + 0xd8]
test eax, eax
jne 0x4e1387
mov eax, dword [esp + 0x18]
lea edx, [esp + 0xc8]
push 0
push edx
push eax
mov ecx, 0x592184
call fcn.004d0460
test eax, eax
je 0x4e1387
mov ecx, dword [esp + 0xc8]
lea ebx, [ecx + 0xc]
test ebx, ebx
je 0x4e1387
xor ebp, ebp
mov eax, ebp
push 0
push eax
mov ecx, ebx
inc ebp
call fcn.004cfc50
mov esi, eax
test esi, esi
je 0x4e1387
mov edx, dword [ebx]
push esi
mov ecx, ebx
call dword [edx + 0x14]
mov esi, dword [esi]
mov edi, eax
push esi
mov dword [esp + 0x1c], esi
call fcn.004dc2d0
add esp, 4
cmp eax, 2
je 0x4e0ba0
cmp eax, 3
jne 0x4e0b66
mov eax, dword [esp + 0x40]
test eax, eax
je 0x4e0bc7
mov ecx, dword [esp + 0x38]
test ecx, ecx
je 0x4e0bc7
mov edx, dword [esp + 0x18]
shr eax, 2
push edx
push eax
push ecx
call fcn.00471b40
add esp, 0xc
cmp eax, 0xffffffff
jne 0x4e0b66
mov eax, dword [esp + 0x1c]
mov ecx, dword [esp + 0x1d8]
mov edx, dword [esp + 0x10]
push eax
mov eax, dword [esp + 0x18]
push edi
push ecx
push edx
push eax
call fcn.004df320
add esp, 0x14
test eax, eax
je 0x4e0b66
mov ecx, dword [esp + 0x18]
push ecx
lea ecx, [esp + 0x34]
call fcn.00470df0
push 0
lea ecx, [esp + 0x7c]
call fcn.00470df0
mov edx, dword [esp + 0xe0]
mov eax, dword [esp + 0x50]
push 0x584f14
lea ecx, [edx + eax*4]
lea edx, [esp + 0x11c]
push ecx
push edx
call fcn.0051457f
push edi
push eax
lea eax, [esp + 0x134]
mov byte [esp + 0x1b4], 0x11
push eax
call fcn.0051457f
mov ecx, dword [esp + 0x5c]
push eax
push ecx
lea ecx, [esp + 0x5c]
mov byte [esp + 0x1b4], 0x12
call fcn.005131b1
lea ecx, [esp + 0x12c]
mov byte [esp + 0x1ac], 0x11
call fcn.00514336
lea ecx, [esp + 0x118]
mov byte [esp + 0x1ac], 0xe
call fcn.00514336
jmp 0x4e0b66
cmp eax, 3
jne 0x4e1387
cmp dword [esp + 0xd8], 1
jne 0x4e1387
mov eax, dword [esp + 0x18]
lea edx, [esp + 0x68]
push 0
push edx
push eax
mov ecx, 0x5921dc
call fcn.004d0460
test eax, eax
je 0x4e1387
test bl, 1
je 0x4e0dd2
mov ecx, dword [esp + 0x68]
mov eax, dword [ecx + 0x3c]
mov edx, dword [ecx + 0x3c]
shr eax, 2
test edx, edx
jne 0x4e0cd7
xor ecx, ecx
jmp 0x4e0cda
mov ecx, dword [ecx + 0x34]
test eax, eax
jle 0x4e1387
mov ebx, dword [esp + 0x1c]
mov ebp, dword [esp + 0x14]
mov esi, ecx
mov edi, eax
mov edx, dword [esi]
lea ecx, [esp + 0xd4]
push 0
push ecx
push edx
mov ecx, 0x5921c0
call fcn.004d0460
test eax, eax
je 0x4e0dc3
mov ecx, dword [esp + 0xd4]
mov eax, dword [0x58c8dc]
push eax
mov ecx, dword [ecx]
push ecx
call fcn.004ff36e
add esp, 8
test eax, eax
je 0x4e0dc3
mov edx, dword [esp + 0xd4]
mov eax, dword [0x58c8e0]
push eax
mov ecx, dword [edx]
push ecx
call fcn.004ff36e
add esp, 8
test eax, eax
je 0x4e0dc3
mov eax, dword [esp + 0xd4]
mov ecx, dword [esp + 0x1d8]
mov edx, dword [esp + 0x10]
push ebx
mov eax, dword [eax]
push eax
push ecx
push edx
push ebp
call fcn.004df320
add esp, 0x14
test eax, eax
je 0x4e0dc3
mov eax, dword [esp + 0xd4]
lea ecx, [esp + 0x30]
mov eax, dword [eax + 0x10]
push eax
call fcn.00470df0
push 0
lea ecx, [esp + 0x7c]
call fcn.00470df0
mov edx, dword [esp + 0xd4]
push 0xffff
push 0
lea ecx, [esp + 0x34]
mov eax, dword [edx + 0x10]
push 0
push ecx
push eax
mov ecx, 0x591fd0
call fcn.0044efb0
mov edx, dword [esp + 0x5c]
lea ecx, [esp + 0x2c]
push ecx
push edx
lea ecx, [esp + 0x5c]
call fcn.005131b1
add esi, 4
dec edi
jne 0x4e0cee
jmp 0x4e1387
lea ecx, [esp + 0x168]
call fcn.00470b30
lea ecx, [esp + 0x140]
mov byte [esp + 0x1ac], 0x13
call fcn.00470b30
lea ecx, [esp + 0x17c]
mov byte [esp + 0x1ac], 0x14
call fcn.00512f21
lea eax, [esp + 0x140]
lea ecx, [esp + 0x17c]
push eax
push 0
push 0
push ecx
mov ecx, dword [esp + 0x78]
lea edx, [esp + 0x178]
push 1
push edx
mov byte [esp + 0x1c4], 0x15
call fcn.004cbc80
mov ebx, dword [esp + 0x178]
mov esi, dword [esp + 0x150]
mov ecx, dword [esp + 0x148]
shr ebx, 2
neg esi
sbb esi, esi
xor edi, edi
and esi, ecx
test ebx, ebx
jle 0x4e0ed3
mov ebp, dword [esp + 0x1c]
mov eax, dword [esp + 0x180]
mov ecx, dword [esp + 0x1d8]
mov edx, dword [esp + 0x10]
push ebp
mov eax, dword [eax + edi*4]
push eax
mov eax, dword [esp + 0x1c]
push ecx
push edx
push eax
call fcn.004df320
add esp, 0x14
test eax, eax
je 0x4e0ece
mov eax, dword [esi + edi*4]
lea ecx, [esp + 0x30]
push eax
call fcn.00470df0
push 0
lea ecx, [esp + 0x7c]
call fcn.00470df0
mov edx, dword [esi + edi*4]
push 0xffff
push 0
lea ecx, [esp + 0x34]
push 0
push ecx
push edx
mov ecx, 0x591fd0
call fcn.0044efb0
mov ecx, dword [esp + 0x5c]
lea eax, [esp + 0x2c]
push eax
push ecx
lea ecx, [esp + 0x5c]
call fcn.005131b1
inc edi
cmp edi, ebx
jl 0x4e0e5d
lea ecx, [esp + 0x17c]
mov byte [esp + 0x1ac], 0x14
call fcn.00512f54
mov esi, 0x5477b0
lea ecx, [esp + 0x140]
mov byte [esp + 0x1ac], 0x13
mov dword [esp + 0x140], esi
call fcn.00470d30
lea ecx, [esp + 0x168]
mov byte [esp + 0x1ac], 0xe
mov dword [esp + 0x168], esi
call fcn.00470d30
jmp 0x4e1387
cmp eax, 3
jne 0x4e1387
mov eax, dword [esp + 0x18]
mov ecx, eax
shr ecx, 0x1d
and ecx, 1
mov dword [esp + 0x6c], ecx
je 0x4e0f5d
lea edx, [esp + 0x24]
and eax, 0xdfffffff
push edx
push eax
mov ecx, 0x591f10
mov dword [esp + 0x20], eax
call fcn.004a9390
jmp 0x4e0f6d
lea ecx, [esp + 0x24]
push ecx
push eax
mov ecx, 0x591fd0
call fcn.0044e840
mov ebx, eax
test ebx, ebx
mov dword [esp + 0x20], ebx
je 0x4e1387
mov eax, dword [esp + 0xd8]
xor edi, edi
cmp eax, edi
jne 0x4e1222
cmp dword [esp + 0x1b8], edi
jne 0x4e10c5
mov eax, dword [esp + 0x40]
cmp eax, edi
je 0x4e0fc4
mov ecx, dword [esp + 0x38]
cmp ecx, edi
je 0x4e0fc4
shr eax, 2
push 0x10004
push eax
push ecx
call fcn.00471b40
add esp, 0xc
cmp eax, 0xffffffff
jne 0x4e10c5
mov eax, dword [ebx + 0x24]
mov esi, dword [ebx + 0x28]
cmp eax, edi
jle 0x4e10c5
mov ebp, dword [esp + 0x14]
mov ebx, dword [esp + 0x1c]
mov edx, dword [esp + 0x44]
mov eax, dword [esp + 0x24]
push edx
push esi
push eax
call fcn.004dbcb0
add esp, 0xc
test eax, eax
je 0x4e101d
cmp word [esi + 0xc], 0x3f5
jne 0x4e101d
test byte [esi + 0xe], 0x10
jne 0x4e101d
mov ecx, dword [esi]
mov edx, dword [esp + 0x1d8]
mov eax, dword [esp + 0x10]
push ebx
push ecx
push edx
push eax
push ebp
call fcn.004df320
add esp, 0x14
test eax, eax
jne 0x4e102f
mov ecx, dword [esp + 0x20]
inc edi
add esi, 0x14
cmp edi, dword [ecx + 0x24]
jl 0x4e0fda
jmp 0x4e10c1
push 0x10004
lea ecx, [esp + 0x34]
call fcn.00470df0
push 0
lea ecx, [esp + 0x7c]
call fcn.00470df0
mov edx, dword [esp + 0xe0]
mov eax, dword [esp + 0x50]
push 0x584f14
lea ecx, [edx + eax*4]
lea edx, [esp + 0x138]
push ecx
push edx
call fcn.0051457f
mov ecx, dword [esi]
lea edx, [esp + 0x13c]
push ecx
push eax
push edx
mov byte [esp + 0x1b8], 0x16
call fcn.0051457f
push eax
mov eax, dword [esp + 0x60]
push eax
lea ecx, [esp + 0x5c]
mov byte [esp + 0x1b4], 0x17
call fcn.005131b1
lea ecx, [esp + 0x13c]
mov byte [esp + 0x1ac], 0x16
call fcn.00514336
lea ecx, [esp + 0x134]
mov byte [esp + 0x1ac], 0xe
call fcn.00514336
mov ebx, dword [esp + 0x20]
mov eax, dword [ebx + 0x30]
mov edi, dword [ebx + 0x34]
test eax, eax
mov dword [esp + 0x20], 0
jle 0x4e1387
mov ebp, dword [esp + 0x50]
test byte [edi + 0x14], 2
jne 0x4e1206
mov esi, dword [edi]
mov ecx, esi
shr ecx, 0x10
jne 0x4e1112
mov edx, dword [esp + 0x18]
mov eax, dword [esp + 0x6c]
shr edx, 0x10
shl edx, 0x10
and esi, 0xffff
or esi, edx
test eax, eax
je 0x4e1112
or esi, 0x20000000
push esi
call fcn.004dc2d0
add esp, 4
cmp eax, 2
je 0x4e1129
cmp eax, 3
jne 0x4e1206
mov eax, dword [esp + 0x40]
test eax, eax
je 0x4e1150
mov ecx, dword [esp + 0x38]
test ecx, ecx
je 0x4e1150
shr eax, 2
push esi
push eax
push ecx
call fcn.00471b40
add esp, 0xc
cmp eax, 0xffffffff
jne 0x4e1206
mov eax, dword [esp + 0x1c]
mov ecx, dword [edi + 8]
mov edx, dword [esp + 0x1d8]
push eax
mov eax, dword [esp + 0x14]
push ecx
mov ecx, dword [esp + 0x1c]
push edx
push eax
push ecx
call fcn.004df320
add esp, 0x14
test eax, eax
je 0x4e1206
push esi
lea ecx, [esp + 0x34]
call fcn.00470df0
push 0
lea ecx, [esp + 0x7c]
call fcn.00470df0
mov edx, dword [esp + 0xe0]
push 0x584f14
lea ecx, [esp + 0x12c]
lea eax, [edx + ebp*4]
push eax
push ecx
call fcn.0051457f
mov edx, dword [edi + 8]
mov byte [esp + 0x1ac], 0x18
push edx
push eax
lea eax, [esp + 0x140]
push eax
call fcn.0051457f
mov ecx, dword [esp + 0x5c]
push eax
push ecx
lea ecx, [esp + 0x5c]
mov byte [esp + 0x1b4], 0x19
call fcn.005131b1
lea ecx, [esp + 0x138]
mov byte [esp + 0x1ac], 0x18
call fcn.00514336
lea ecx, [esp + 0x128]
mov byte [esp + 0x1ac], 0xe
call fcn.00514336
mov eax, dword [esp + 0x20]
mov ecx, dword [ebx + 0x30]
inc eax
add edi, 0x1c
cmp eax, ecx
mov dword [esp + 0x20], eax
jl 0x4e10df
jmp 0x4e1387
mov ecx, dword [esp + 0x24]
mov dword [esp + 0x74], edi
cmp dword [esp + 0x74], 1
jne 0x4e125b
mov edx, dword [esp + 0x20]
mov eax, dword [edx + 0x14]
test al, 0x40
je 0x4e1387
test al, 0x10
jne 0x4e1387
mov eax, dword [esp + 0x4c]
mov ecx, dword [esp + 0x94]
mov dword [esp + 0x20], eax
mov dword [esp + 0x24], ecx
mov edx, dword [esp + 0x20]
xor edi, edi
mov eax, dword [edx + 0xc]
test eax, eax
jle 0x4e1375
mov ebp, dword [esp + 0x44]
mov ebx, edx
mov eax, dword [ebx + 0x10]
push ebp
mov eax, dword [eax + edi*4]
lea edx, [eax + eax*8]
mov eax, dword [ecx + 0x68]
lea esi, [eax + edx*4]
push esi
push ecx
call fcn.004dbcb0
add esp, 0xc
cmp eax, 1
jne 0x4e1365
test byte [esi + 0xe], 0xc
jne 0x4e1365
mov ecx, dword [esp + 0x1c]
mov edx, dword [esi]
mov eax, dword [esp + 0x1d8]
push ecx
mov ecx, dword [esp + 0x14]
push edx
mov edx, dword [esp + 0x1c]
push eax
push ecx
push edx
call fcn.004df320
add esp, 0x14
test eax, eax
je 0x4e1365
mov esi, dword [esi + 0x10]
push esi
call fcn.004dc2d0
add esp, 4
cmp eax, 3
jne 0x4e131c
mov eax, esi
shr eax, 0x10
jne 0x4e131c
mov ecx, dword [esp + 0x18]
mov eax, dword [esp + 0x6c]
shr ecx, 0x10
shl ecx, 0x10
and esi, 0xffff
or esi, ecx
test eax, eax
je 0x4e131c
push 0xffff
push 0
lea edx, [esp + 0x34]
push 0
push edx
push esi
push 0
mov ecx, 0x591f10
call fcn.00462a80
or esi, 0x20000000
push esi
lea ecx, [esp + 0x34]
call fcn.00470df0
push 0
lea ecx, [esp + 0x7c]
call fcn.00470df0
test esi, 0x20000000
jne 0x4e1352
push 0xffff
push 0
lea eax, [esp + 0x34]
push 0
push eax
push esi
mov ecx, 0x591fd0
call fcn.0044efb0
mov edx, dword [esp + 0x5c]
lea ecx, [esp + 0x2c]
push ecx
push edx
lea ecx, [esp + 0x5c]
call fcn.005131b1
mov eax, dword [ebx + 0xc]
mov ecx, dword [esp + 0x24]
inc edi
cmp edi, eax
jl 0x4e1272
mov eax, dword [esp + 0x74]
inc eax
cmp eax, 1
mov dword [esp + 0x74], eax
jle 0x4e122a
mov eax, dword [esp + 0x50]
mov ecx, dword [esp + 0xfc]
inc eax
cmp eax, ecx
mov dword [esp + 0x50], eax
jl 0x4e07fe
jmp 0x4e274f
cmp ecx, 1
jne 0x4e1b78
mov ebp, dword [esp + 0x1c]
mov edi, 0x58e754
mov esi, dword [edi]
mov eax, dword [esp + 0x1d8]
mov ecx, dword [esp + 0x10]
mov edx, dword [esp + 0x14]
push ebp
push esi
push eax
push ecx
push edx
call fcn.004dbf00
add esp, 0x14
test eax, eax
je 0x4e13f2
mov eax, dword [ebx + 8]
push esi
push eax
mov ecx, ebx
call fcn.00513185
mov ecx, dword [esp + 0x1d0]
push 0xa
call fcn.00470df0
add edi, 4
cmp edi, 0x58e75c
jl 0x4e13b6
mov eax, dword [esp + 0x1b8]
test eax, eax
jne 0x4e1555
mov edi, dword [esp + 0x14]
xor esi, esi
lea ecx, [esp + 0x28]
mov eax, esi
push ecx
push eax
mov ecx, 0x5921c0
inc esi
call fcn.004d03c0
test eax, eax
je 0x4e14e6
mov edx, dword [esp + 0x28]
mov eax, dword [edx + 8]
test eax, eax
je 0x4e1492
push eax
call fcn.004cfb80
add esp, 4
xor ecx, ecx
cmp eax, 0x40000000
sete cl
mov eax, ecx
test eax, eax
je 0x4e1492
mov ecx, dword [esp + 0x28]
mov eax, dword [esp + 0x1c8]
mov edx, dword [ecx + 8]
cmp edx, dword [eax + 8]
jne 0x4e1412
mov eax, dword [0x58c8dc]
mov ecx, dword [ecx]
push eax
push ecx
call fcn.004ff36e
add esp, 8
test eax, eax
je 0x4e1412
mov ecx, dword [esp + 0x28]
mov eax, dword [0x58c8e0]
push eax
mov ecx, dword [ecx]
push ecx
call fcn.004ff36e
add esp, 8
test eax, eax
je 0x4e1412
mov edx, dword [esp + 0x28]
mov eax, dword [edx]
mov ecx, dword [eax - 8]
test ecx, ecx
je 0x4e1412
mov ecx, dword [esp + 0x10]
push ebp
push eax
mov eax, dword [esp + 0x1e0]
push eax
push ecx
push edi
call fcn.004dbf00
add esp, 0x14
test eax, eax
je 0x4e1412
mov edx, dword [esp + 0x28]
mov eax, dword [ebx + 8]
push edx
push eax
mov ecx, ebx
call fcn.005131b1
mov ecx, dword [esp + 0x1d0]
push 0
call fcn.00470df0
jmp 0x4e1412
xor esi, esi
lea ecx, [esp + 0xcc]
mov eax, esi
push ecx
push eax
mov ecx, 0x5921f8
inc esi
call fcn.004d03c0
test eax, eax
je 0x4e1555
mov edx, dword [esp + 0xcc]
mov eax, dword [edx]
mov ecx, dword [eax - 8]
test ecx, ecx
je 0x4e14e8
mov ecx, dword [esp + 0x10]
mov edx, dword [esp + 0x14]
push ebp
push eax
mov eax, dword [esp + 0x1e0]
push eax
push ecx
push edx
call fcn.004dbf00
add esp, 0x14
test eax, eax
je 0x4e14e8
mov eax, dword [esp + 0xcc]
mov ecx, dword [ebx + 8]
push eax
push ecx
mov ecx, ebx
call fcn.005131b1
mov ecx, dword [esp + 0x1d0]
push 0x10
call fcn.00470df0
jmp 0x4e14e8
mov eax, dword [esp + 0x1c4]
test eax, eax
je 0x4e15fa
mov ecx, dword [eax + 0x44]
test ecx, ecx
je 0x4e15fa
mov edi, dword [esp + 0x14]
xor esi, esi
lea edx, [esp + 0x68]
mov eax, esi
push edx
push eax
mov ecx, 0x5921dc
inc esi
call fcn.004d03c0
test eax, eax
je 0x4e15fa
lea eax, [esi - 1]
mov ecx, 0x5921dc
push eax
call fcn.004d0400
push eax
mov dword [esp + 0x1c], eax
call fcn.004cfb80
add esp, 4
cmp eax, 0x40000000
jne 0x4e1575
mov ecx, dword [esp + 0x68]
mov eax, dword [ecx]
mov ecx, dword [eax - 8]
test ecx, ecx
je 0x4e1575
mov edx, dword [esp + 0x1d8]
push ebp
push eax
mov eax, dword [esp + 0x18]
push edx
push eax
push edi
call fcn.004dbf00
add esp, 0x14
test eax, eax
je 0x4e1575
mov ecx, dword [esp + 0x68]
mov edx, dword [ebx + 8]
push ecx
push edx
mov ecx, ebx
call fcn.005131b1
mov ecx, dword [esp + 0x1d0]
push 0x12
call fcn.00470df0
jmp 0x4e1575
mov eax, dword [esp + 0x8c]
test eax, eax
je 0x4e17f0
mov eax, dword [esp + 0x1b8]
test eax, eax
jne 0x4e17f0
mov ecx, dword [esp + 0x94]
mov eax, dword [esp + 0x4c]
mov dword [esp + 0x24], ecx
xor edi, edi
mov edx, dword [eax + 0xc]
test edx, edx
jle 0x4e16b6
mov ebx, dword [esp + 0x1cc]
mov ebp, eax
jmp 0x4e1643
mov ecx, dword [esp + 0x24]
mov edx, dword [ebp + 0x10]
mov eax, dword [edx + edi*4]
mov edx, dword [ecx + 0x68]
lea eax, [eax + eax*8]
lea esi, [edx + eax*4]
mov eax, dword [esp + 0x44]
push eax
push esi
push ecx
call fcn.004dbcb0
add esp, 0xc
cmp eax, 1
jne 0x4e16ae
test byte [esi + 0xe], 0xc
jne 0x4e16ae
mov ecx, dword [esp + 0x1c]
mov edx, dword [esi]
mov eax, dword [esp + 0x1d8]
push ecx
mov ecx, dword [esp + 0x14]
push edx
mov edx, dword [esp + 0x1c]
push eax
push ecx
push edx
call fcn.004dbf00
add esp, 0x14
test eax, eax
je 0x4e16ae
mov esi, dword [esi]
mov eax, dword [ebx + 8]
push esi
push eax
mov ecx, ebx
call fcn.00513185
mov ecx, dword [esp + 0x1d0]
push 0xc
call fcn.00470df0
mov eax, dword [ebp + 0xc]
inc edi
cmp edi, eax
jl 0x4e163f
mov eax, dword [esp + 0x4c]
xor ebx, ebx
mov ecx, dword [eax + 0x24]
mov esi, dword [eax + 0x28]
test ecx, ecx
jle 0x4e173f
mov ebp, dword [esp + 0x1d0]
mov edi, dword [esp + 0x1cc]
mov eax, dword [esp + 0x44]
mov ecx, dword [esp + 0x94]
push eax
push esi
push ecx
call fcn.004dbcb0
add esp, 0xc
cmp eax, 1
jne 0x4e1732
test byte [esi + 0xe], 0x10
jne 0x4e1732
mov edx, dword [esp + 0x1c]
mov eax, dword [esi]
mov ecx, dword [esp + 0x1d8]
push edx
mov edx, dword [esp + 0x14]
push eax
mov eax, dword [esp + 0x1c]
push ecx
push edx
push eax
call fcn.004dbf00
add esp, 0x14
test eax, eax
je 0x4e1732
mov eax, dword [esi]
mov ecx, dword [edi + 8]
push eax
push ecx
mov ecx, edi
call fcn.00513185
push 7
mov ecx, ebp
call fcn.00470df0
mov ecx, dword [esp + 0x4c]
inc ebx
add esi, 0x14
cmp ebx, dword [ecx + 0x24]
jl 0x4e16d4
mov ebp, dword [esp + 0x1cc]
mov ebx, 1
mov edx, dword [esp + 0x8c]
mov eax, ebx
push 0
push eax
lea ecx, [edx + 0x14]
inc ebx
call fcn.004cfc50
mov esi, eax
test esi, esi
je 0x4e17f0
mov ecx, dword [esp + 0x8c]
lea eax, [ebx - 1]
push eax
add ecx, 0x14
call fcn.004d0680
mov edi, eax
cmp edi, 1
jne 0x4e178c
mov eax, dword [esp + 0x70]
test eax, eax
je 0x4e174b
mov edx, dword [esp + 0x8c]
push esi
mov eax, dword [edx + 0x14]
lea ecx, [edx + 0x14]
call dword [eax + 0x14]
mov esi, eax
cmp byte [esi], 0
je 0x4e174b
mov ecx, dword [esp + 0x1c]
mov edx, dword [esp + 0x1d8]
mov eax, dword [esp + 0x10]
push ecx
mov ecx, dword [esp + 0x18]
push esi
push edx
push eax
push ecx
call fcn.004dbf00
add esp, 0x14
test eax, eax
je 0x4e174b
mov edx, dword [ebp + 8]
push esi
push edx
mov ecx, ebp
call fcn.00513185
mov ecx, dword [esp + 0x1d0]
xor eax, eax
test edi, edi
setne al
add eax, 5
push eax
call fcn.00470df0
jmp 0x4e174b
mov ebp, dword [esp + 0x1d0]
mov edi, dword [esp + 0x1cc]
mov ebx, 0x58e75c
mov ecx, dword [esp + 0x1c]
mov esi, dword [ebx]
mov edx, dword [esp + 0x1d8]
mov eax, dword [esp + 0x10]
push ecx
mov ecx, dword [esp + 0x18]
push esi
push edx
push eax
push ecx
call fcn.004dbf00
add esp, 0x14
test eax, eax
je 0x4e183e
mov eax, dword [edi + 8]
push esi
push eax
mov ecx, edi
call fcn.00513185
push 0xb
mov ecx, ebp
call fcn.00470df0
add ebx, 4
cmp ebx, 0x58e764
jl 0x4e1803
mov eax, dword [esp + 0x1b8]
test eax, eax
jne 0x4e1925
mov eax, dword [esp + 0x98]
mov dword [esp + 0x20], 0
test eax, eax
jle 0x4e1925
mov edx, dword [0x59231c]
mov eax, dword [esp + 0x20]
mov ecx, dword [esp + 0x44]
mov eax, dword [edx + eax*4]
push ecx
push eax
mov dword [esp + 0x2c], eax
call fcn.004dbc10
add esp, 8
test eax, eax
je 0x4e190d
mov eax, dword [esp + 0x24]
xor ebx, ebx
mov ecx, dword [eax + 0x64]
mov esi, dword [eax + 0x68]
test ecx, ecx
jle 0x4e190d
mov edx, dword [esp + 0x44]
push edx
push esi
push eax
call fcn.004dbcb0
add esp, 0xc
cmp eax, 1
jne 0x4e1900
test byte [esi + 0xe], 0xc
jne 0x4e1900
cmp word [esi + 0xc], 0xffff
je 0x4e1900
mov eax, dword [esp + 0x1c]
mov ecx, dword [esi]
mov edx, dword [esp + 0x1d8]
push eax
mov eax, dword [esp + 0x14]
push ecx
mov ecx, dword [esp + 0x1c]
push edx
push eax
push ecx
call fcn.004dbf00
add esp, 0x14
test eax, eax
je 0x4e1900
mov eax, dword [esi]
mov ecx, dword [edi + 8]
push eax
push ecx
mov ecx, edi
call fcn.00513185
push 0xb
mov ecx, ebp
call fcn.00470df0
mov eax, dword [esp + 0x24]
inc ebx
add esi, 0x24
cmp ebx, dword [eax + 0x64]
jl 0x4e18a2
mov eax, dword [esp + 0x20]
mov ecx, dword [esp + 0x98]
inc eax
cmp eax, ecx
mov dword [esp + 0x20], eax
jl 0x4e186f
mov eax, dword [esp + 0x1c8]
test eax, eax
je 0x4e1a07
mov edx, eax
xor ebp, ebp
lea ebx, [edx + 0x14]
mov eax, ebp
push 0
push eax
mov ecx, ebx
inc ebp
call fcn.004cfc50
test eax, eax
je 0x4e199b
mov edx, dword [ebx]
push eax
mov ecx, ebx
call dword [edx + 0x14]
mov esi, eax
cmp byte [esi], 0
je 0x4e193b
mov eax, dword [esp + 0x1c]
mov ecx, dword [esp + 0x1d8]
mov edx, dword [esp + 0x10]
push eax
mov eax, dword [esp + 0x18]
push esi
push ecx
push edx
push eax
call fcn.004dbf00
add esp, 0x14
test eax, eax
je 0x4e193b
mov ecx, dword [edi + 8]
push esi
push ecx
mov ecx, edi
call fcn.00513185
mov ecx, dword [esp + 0x1d0]
push 1
call fcn.00470df0
jmp 0x4e193b
mov edx, dword [esp + 0x1c8]
xor ebp, ebp
lea ebx, [edx + 0x34]
mov eax, ebp
push 0
push eax
mov ecx, ebx
inc ebp
call fcn.004cfc50
test eax, eax
je 0x4e1a07
mov edx, dword [ebx]
push eax
mov ecx, ebx
call dword [edx + 0x14]
mov esi, eax
cmp byte [esi], 0
je 0x4e19a7
mov eax, dword [esp + 0x1c]
mov ecx, dword [esp + 0x1d8]
mov edx, dword [esp + 0x10]
push eax
mov eax, dword [esp + 0x18]
push esi
push ecx
push edx
push eax
call fcn.004dbf00
add esp, 0x14
test eax, eax
je 0x4e19a7
mov ecx, dword [edi + 8]
push esi
push ecx
mov ecx, edi
call fcn.00513185
mov ecx, dword [esp + 0x1d0]
push 3
call fcn.00470df0
jmp 0x4e19a7
mov ebx, dword [esp + 0x1c4]
test ebx, ebx
je 0x4e1a77
xor ebp, ebp
add ebx, 0xc
mov eax, ebp
push 0
push eax
mov ecx, ebx
inc ebp
call fcn.004cfc50
test eax, eax
je 0x4e1a77
mov edx, dword [ebx]
push eax
mov ecx, ebx
call dword [edx + 0x14]
mov esi, eax
cmp byte [esi], 0
je 0x4e1a17
mov eax, dword [esp + 0x1c]
mov ecx, dword [esp + 0x1d8]
mov edx, dword [esp + 0x10]
push eax
mov eax, dword [esp + 0x18]
push esi
push ecx
push edx
push eax
call fcn.004dbf00
add esp, 0x14
test eax, eax
je 0x4e1a17
mov ecx, dword [edi + 8]
push esi
push ecx
mov ecx, edi
call fcn.00513185
mov ecx, dword [esp + 0x1d0]
push 8
call fcn.00470df0
jmp 0x4e1a17
xor ebx, ebx
mov eax, ebx
push 0
push eax
mov ecx, 0x5921a0
inc ebx
call fcn.004cfc50
test eax, eax
je 0x4e1ae3
mov edx, dword [0x5921a0]
push eax
mov ecx, 0x5921a0
call dword [edx + 0x14]
mov esi, eax
cmp byte [esi], 0
je 0x4e1a79
mov eax, dword [esp + 0x1c]
mov ecx, dword [esp + 0x1d8]
mov edx, dword [esp + 0x10]
push eax
mov eax, dword [esp + 0x18]
push esi
push ecx
push edx
push eax
call fcn.004dbf00
add esp, 0x14
test eax, eax
je 0x4e1a79
mov ecx, dword [edi + 8]
push esi
push ecx
mov ecx, edi
call fcn.00513185
mov ecx, dword [esp + 0x1d0]
push 9
call fcn.00470df0
jmp 0x4e1a79
mov eax, dword [esp + 0xf4]
test eax, eax
je 0x4e274f
mov eax, dword [esp + 0x1b8]
test eax, eax
jne 0x4e274f
xor esi, esi
lea edx, [esp + 0x48]
mov eax, esi
push edx
push eax
mov ecx, 0x592214
inc esi
call fcn.004d03c0
test eax, eax
je 0x4e274f
mov eax, dword [esp + 0x48]
mov eax, dword [eax + 0xc]
mov ecx, dword [eax - 8]
test ecx, ecx
je 0x4e1b03
mov ecx, dword [esp + 0x1c]
mov edx, dword [esp + 0x1d8]
push ecx
mov ecx, dword [esp + 0x18]
push eax
mov eax, dword [esp + 0x18]
push edx
push eax
push ecx
call fcn.004dbf00
add esp, 0x14
test eax, eax
je 0x4e1b03
mov edx, dword [esp + 0x48]
mov ecx, dword [esp + 0x1cc]
add edx, 0xc
mov eax, dword [ecx + 8]
push edx
push eax
call fcn.005131b1
mov ecx, dword [esp + 0x1d0]
push 4
call fcn.00470df0
jmp 0x4e1b03
mov eax, dword [esp + 0xb0]
shr eax, 2
mov dword [esp + 0xfc], eax
je 0x4e2809
xor esi, esi
test eax, eax
jle 0x4e262b
mov ecx, dword [esp + 0xa8]
push 1
lea eax, [esp + 0x1c]
push 1
mov edx, dword [ecx + esi*4]
push eax
mov ecx, 0x591fd0
mov dword [esp + 0x24], edx
call fcn.004465f0
mov ecx, dword [esp + 0xbc]
mov eax, dword [esp + 0x18]
push eax
mov edx, dword [ecx + esi*4]
mov dword [esp + 0x70], edx
call fcn.004dc2d0
mov ecx, dword [esp + 0xf8]
add esp, 4
cmp ecx, 1
jne 0x4e1f26
cmp eax, 2
jne 0x4e22e3
mov ecx, dword [esp + 0x18]
push ecx
call fcn.004db4a0
add esp, 4
cmp eax, 2
jne 0x4e1f2f
mov eax, dword [esp + 0x1b8]
test eax, eax
jne 0x4e261b
mov eax, dword [esp + 0x18]
lea edx, [esp + 0x48]
push 0
push edx
push eax
mov ecx, 0x592214
call fcn.004d0460
test eax, eax
je 0x4e1f18
mov dword [esp + 0x20], 1
mov ecx, dword [esp + 0x20]
push 0
mov eax, ecx
inc ecx
mov dword [esp + 0x24], ecx
mov ecx, dword [esp + 0x4c]
push eax
add ecx, 0x14
call fcn.004cfc50
mov edi, eax
test edi, edi
je 0x4e1d50
mov edx, dword [esp + 0x20]
mov eax, dword [esp + 0x48]
dec edx
push edx
lea ecx, [eax + 0x14]
call fcn.004d0680
mov ebp, eax
cmp ebp, 1
jne 0x4e1c7e
mov eax, dword [esp + 0x70]
test eax, eax
je 0x4e1c39
mov eax, dword [esp + 0x40]
mov ecx, dword [edi]
test eax, eax
mov dword [esp + 0x18], ecx
je 0x4e1ca7
mov edx, dword [esp + 0x38]
test edx, edx
je 0x4e1ca7
shr eax, 2
push ecx
push eax
push edx
call fcn.00471b40
add esp, 0xc
cmp eax, 0xffffffff
jne 0x4e1c39
mov ecx, dword [esp + 0x48]
push edi
add ecx, 0x14
mov edx, dword [ecx]
call dword [edx + 0x14]
mov edi, eax
cmp byte [edi], 0
je 0x4e1c39
mov eax, dword [esp + 0x1c]
mov ecx, dword [esp + 0x1d8]
mov edx, dword [esp + 0x10]
push eax
mov eax, dword [esp + 0x18]
push edi
push ecx
push edx
push eax
call fcn.004dbf00
add esp, 0x14
test eax, eax
je 0x4e1c39
mov ecx, dword [esp + 0xa8]
mov edx, dword [ecx + esi*4]
lea ecx, [esp + 0x30]
push edx
call fcn.00470df0
mov eax, dword [esp + 0xbc]
mov ecx, dword [eax + esi*4]
push ecx
lea ecx, [esp + 0x7c]
call fcn.00470df0
mov edx, dword [esp + 0xe0]
mov ecx, dword [esp + 0x5c]
lea eax, [edx + esi*4]
push eax
push ecx
lea ecx, [esp + 0x5c]
call fcn.005131b1
mov edx, dword [ebx + 8]
push edi
push edx
mov ecx, ebx
call fcn.00513185
mov ecx, dword [esp + 0x1d0]
xor eax, eax
test ebp, ebp
setne al
add eax, 5
push eax
call fcn.00470df0
jmp 0x4e1c39
mov ecx, dword [esp + 0x48]
mov eax, dword [ecx + 8]
test eax, eax
je 0x4e1f18
lea edx, [esp + 0xf8]
push 0
push edx
push eax
mov ecx, 0x5921dc
call fcn.004d0460
cmp eax, 1
jne 0x4e1f18
xor ebp, ebp
mov eax, ebp
push 0
push eax
mov eax, dword [esp + 0x100]
inc ebp
lea ecx, [eax + 0xc]
call fcn.004cfc50
test eax, eax
je 0x4e1e37
mov ecx, dword [esp + 0xf8]
push eax
add ecx, 0xc
mov edx, dword [ecx]
call dword [edx + 0x14]
mov edi, eax
cmp byte [edi], 0
je 0x4e1d7f
mov eax, dword [esp + 0x1c]
mov ecx, dword [esp + 0x1d8]
mov edx, dword [esp + 0x10]
push eax
mov eax, dword [esp + 0x18]
push edi
push ecx
push edx
push eax
call fcn.004dbf00
add esp, 0x14
test eax, eax
je 0x4e1d7f
mov ecx, dword [esp + 0xa8]
mov edx, dword [ecx + esi*4]
lea ecx, [esp + 0x30]
push edx
call fcn.00470df0
mov eax, dword [esp + 0xbc]
mov ecx, dword [eax + esi*4]
push ecx
lea ecx, [esp + 0x7c]
call fcn.00470df0
mov edx, dword [esp + 0xe0]
mov ecx, dword [esp + 0x5c]
lea eax, [edx + esi*4]
push eax
push ecx
lea ecx, [esp + 0x5c]
call fcn.005131b1
mov edx, dword [ebx + 8]
push edi
push edx
mov ecx, ebx
call fcn.00513185
mov ecx, dword [esp + 0x1d0]
push 8
call fcn.00470df0
jmp 0x4e1d7f
mov eax, dword [esp + 0xf8]
mov ecx, dword [eax + 0x3c]
test ecx, ecx
jne 0x4e1e49
xor ecx, ecx
jmp 0x4e1e4c
mov ecx, dword [eax + 0x34]
mov eax, dword [eax + 0x3c]
shr eax, 2
test eax, eax
jle 0x4e1f18
mov edi, ecx
mov ebp, eax
mov ecx, dword [edi]
lea eax, [esp + 0x28]
push 0
push eax
push ecx
mov ecx, 0x5921c0
call fcn.004d0460
test eax, eax
je 0x4e1f0e
mov edx, dword [esp + 0x28]
mov eax, dword [edx]
mov ecx, dword [eax - 8]
test ecx, ecx
je 0x4e1f0e
mov ecx, dword [esp + 0x1c]
mov edx, dword [esp + 0x1d8]
push ecx
mov ecx, dword [esp + 0x18]
push eax
mov eax, dword [esp + 0x18]
push edx
push eax
push ecx
call fcn.004dbf00
add esp, 0x14
test eax, eax
je 0x4e1f0e
mov edx, dword [esp + 0xa8]
lea ecx, [esp + 0x30]
mov eax, dword [edx + esi*4]
push eax
call fcn.00470df0
mov eax, dword [esp + 0xbc]
lea ecx, [esp + 0x78]
mov eax, dword [eax + esi*4]
push eax
call fcn.00470df0
mov ecx, dword [esp + 0xe0]
mov edx, dword [esp + 0x5c]
lea eax, [ecx + esi*4]
lea ecx, [esp + 0x54]
push eax
push edx
call fcn.005131b1
mov ecx, dword [esp + 0x28]
mov eax, dword [ebx + 8]
push ecx
push eax
mov ecx, ebx
call fcn.005131b1
mov ecx, dword [esp + 0x1d0]
push 0
call fcn.00470df0
add edi, 4
dec ebp
jne 0x4e1e5e
mov eax, 0x10001
mov dword [esp + 0x18], eax
jmp 0x4e22f0
cmp eax, 2
jne 0x4e22e3
mov edx, dword [esp + 0x18]
push edx
call fcn.004db4a0
add esp, 4
cmp eax, 1
jne 0x4e2020
mov ecx, dword [esp + 0x18]
lea eax, [esp + 0xc8]
push 0
push eax
push ecx
mov ecx, 0x592184
call fcn.004d0460
test eax, eax
je 0x4e261b
xor ebp, ebp
mov edx, dword [esp + 0xc8]
mov eax, ebp
push 0
push eax
lea ecx, [edx + 0xc]
inc ebp
call fcn.004cfc50
test eax, eax
je 0x4e261b
mov ecx, dword [esp + 0xc8]
push eax
add ecx, 0xc
mov edx, dword [ecx]
call dword [edx + 0x14]
mov edi, eax
cmp byte [edi], 0
je 0x4e1f68
mov eax, dword [esp + 0x1c]
mov ecx, dword [esp + 0x1d8]
mov edx, dword [esp + 0x10]
push eax
mov eax, dword [esp + 0x18]
push edi
push ecx
push edx
push eax
call fcn.004dbf00
add esp, 0x14
test eax, eax
je 0x4e1f68
mov ecx, dword [esp + 0xa8]
mov edx, dword [ecx + esi*4]
lea ecx, [esp + 0x30]
push edx
call fcn.00470df0
mov eax, dword [esp + 0xbc]
mov ecx, dword [eax + esi*4]
push ecx
lea ecx, [esp + 0x7c]
call fcn.00470df0
mov edx, dword [esp + 0xe0]
mov ecx, dword [esp + 0x5c]
lea eax, [edx + esi*4]
push eax
push ecx
lea ecx, [esp + 0x5c]
call fcn.005131b1
mov edx, dword [ebx + 8]
push edi
push edx
mov ecx, ebx
call fcn.00513185
mov ecx, dword [esp + 0x1d0]
push 0xd
call fcn.00470df0
jmp 0x4e1f68
mov eax, dword [esp + 0x18]
push eax
call fcn.004db4a0
add esp, 4
cmp eax, 3
jne 0x4e261b
mov edx, dword [esp + 0x18]
lea ecx, [esp + 0x68]
push 0
push ecx
push edx
mov ecx, 0x5921dc
call fcn.004d0460
test eax, eax
je 0x4e261b
test byte [esp + 0x6c], 1
je 0x4e2198
mov ecx, dword [esp + 0x68]
mov eax, dword [ecx + 0x3c]
mov edx, dword [ecx + 0x3c]
shr eax, 2
test edx, edx
jne 0x4e2074
xor ecx, ecx
jmp 0x4e2077
mov ecx, dword [ecx + 0x34]
test eax, eax
jle 0x4e261b
mov ebp, dword [esp + 0x1d0]
mov dword [esp + 0x74], ecx
mov dword [esp + 0x6c], eax
mov ecx, dword [esp + 0x74]
lea eax, [esp + 0xf0]
push 0
push eax
mov edx, dword [ecx]
mov ecx, 0x5921c0
push edx
call fcn.004d0460
test eax, eax
je 0x4e2179
mov ecx, dword [esp + 0xf0]
mov eax, dword [0x58c8dc]
push eax
mov ecx, dword [ecx]
push ecx
call fcn.004ff36e
add esp, 8
test eax, eax
je 0x4e2179
mov edx, dword [esp + 0xf0]
mov eax, dword [0x58c8e0]
push eax
mov ecx, dword [edx]
push ecx
call fcn.004ff36e
add esp, 8
test eax, eax
je 0x4e2179
mov eax, dword [esp + 0xf0]
mov edi, dword [eax]
cmp byte [edi], 0
je 0x4e2179
mov ecx, dword [esp + 0x1c]
mov edx, dword [esp + 0x1d8]
mov eax, dword [esp + 0x10]
push ecx
mov ecx, dword [esp + 0x18]
push edi
push edx
push eax
push ecx
call fcn.004dbf00
add esp, 0x14
test eax, eax
je 0x4e2179
mov edx, dword [esp + 0xa8]
lea ecx, [esp + 0x30]
mov eax, dword [edx + esi*4]
push eax
call fcn.00470df0
mov eax, dword [esp + 0xbc]
lea ecx, [esp + 0x78]
mov eax, dword [eax + esi*4]
push eax
call fcn.00470df0
mov ecx, dword [esp + 0xe0]
mov edx, dword [esp + 0x5c]
lea eax, [ecx + esi*4]
lea ecx, [esp + 0x54]
push eax
push edx
call fcn.005131b1
mov eax, dword [ebx + 8]
push edi
push eax
mov ecx, ebx
call fcn.00513185
push 0xc
mov ecx, ebp
call fcn.00470df0
mov ecx, dword [esp + 0x74]
mov eax, dword [esp + 0x6c]
add ecx, 4
dec eax
mov dword [esp + 0x74], ecx
mov dword [esp + 0x6c], eax
jne 0x4e208e
jmp 0x4e261b
lea ecx, [esp + 0x154]
call fcn.00470b30
lea ecx, [esp + 0x190]
mov byte [esp + 0x1ac], 0x1a
call fcn.00512f21
push 0
push 0
lea eax, [esp + 0x198]
push 0
push eax
lea ecx, [esp + 0x164]
push 1
push ecx
mov ecx, dword [esp + 0x80]
mov byte [esp + 0x1c4], 0x1b
call fcn.004cbc80
mov eax, dword [esp + 0x164]
mov dword [esp + 0x20], 0
shr eax, 2
test eax, eax
mov dword [esp + 0x6c], eax
jle 0x4e22ab
mov ebp, dword [esp + 0x1d0]
mov edx, dword [esp + 0x194]
mov eax, dword [esp + 0x20]
mov edi, dword [edx + eax*4]
cmp byte [edi], 0
je 0x4e2296
mov ecx, dword [esp + 0x1c]
mov edx, dword [esp + 0x1d8]
mov eax, dword [esp + 0x10]
push ecx
mov ecx, dword [esp + 0x18]
push edi
push edx
push eax
push ecx
call fcn.004dbf00
add esp, 0x14
test eax, eax
je 0x4e2296
mov edx, dword [esp + 0xa8]
lea ecx, [esp + 0x30]
mov eax, dword [edx + esi*4]
push eax
call fcn.00470df0
mov eax, dword [esp + 0xbc]
lea ecx, [esp + 0x78]
mov eax, dword [eax + esi*4]
push eax
call fcn.00470df0
mov ecx, dword [esp + 0xe0]
mov edx, dword [esp + 0x5c]
lea eax, [ecx + esi*4]
lea ecx, [esp + 0x54]
push eax
push edx
call fcn.005131b1
mov eax, dword [ebx + 8]
push edi
push eax
mov ecx, ebx
call fcn.00513185
push 0xc
mov ecx, ebp
call fcn.00470df0
mov eax, dword [esp + 0x20]
mov ecx, dword [esp + 0x6c]
inc eax
cmp eax, ecx
mov dword [esp + 0x20], eax
jl 0x4e2209
lea ecx, [esp + 0x190]
mov byte [esp + 0x1ac], 0x1a
call fcn.00512f54
lea ecx, [esp + 0x154]
mov byte [esp + 0x1ac], 0xe
mov dword [esp + 0x154], 0x5477b0
call fcn.00470d30
jmp 0x4e261b
cmp eax, 3
jne 0x4e261b
mov eax, dword [esp + 0x18]
test eax, 0x20000000
je 0x4e2312
lea ecx, [esp + 0x24]
and eax, 0xdfffffff
push ecx
push eax
mov ecx, 0x591f10
mov dword [esp + 0x20], eax
call fcn.004a9390
jmp 0x4e2322
lea edx, [esp + 0x24]
mov ecx, 0x591fd0
push edx
push eax
call fcn.0044e840
mov ebp, eax
test ebp, ebp
je 0x4e261b
mov eax, dword [esp + 0x44]
mov ecx, dword [esp + 0x24]
push eax
push ebp
push ecx
call fcn.004dbc50
add esp, 0xc
test eax, eax
je 0x4e261b
mov eax, dword [esp + 0x1b8]
test eax, eax
jne 0x4e242c
mov eax, dword [ebp + 0x24]
mov edi, dword [ebp + 0x28]
test eax, eax
mov dword [esp + 0x20], 0
jle 0x4e242c
mov edx, dword [esp + 0x44]
mov eax, dword [esp + 0x24]
push edx
push edi
push eax
call fcn.004dbcb0
add esp, 0xc
cmp eax, 1
jne 0x4e2415
test byte [edi + 0xe], 0x10
jne 0x4e2415
mov ecx, dword [esp + 0x1c]
mov edx, dword [edi]
mov eax, dword [esp + 0x1d8]
push ecx
mov ecx, dword [esp + 0x14]
push edx
mov edx, dword [esp + 0x1c]
push eax
push ecx
push edx
call fcn.004dbf00
add esp, 0x14
test eax, eax
je 0x4e2415
mov eax, dword [esp + 0xa8]
lea ecx, [esp + 0x30]
mov eax, dword [eax + esi*4]
push eax
call fcn.00470df0
mov ecx, dword [esp + 0xbc]
mov eax, dword [ecx + esi*4]
lea ecx, [esp + 0x78]
push eax
call fcn.00470df0
mov edx, dword [esp + 0xe0]
lea ecx, [esp + 0x54]
lea eax, [edx + esi*4]
push eax
mov eax, dword [esp + 0x60]
push eax
call fcn.005131b1
mov eax, dword [edi]
mov ecx, dword [ebx + 8]
push eax
push ecx
mov ecx, ebx
call fcn.00513185
mov ecx, dword [esp + 0x1d0]
push 7
call fcn.00470df0
mov eax, dword [esp + 0x20]
mov ecx, dword [ebp + 0x24]
inc eax
add edi, 0x14
cmp eax, ecx
mov dword [esp + 0x20], eax
jl 0x4e236c
mov eax, dword [ebp + 0x30]
mov edi, dword [ebp + 0x34]
test eax, eax
mov dword [esp + 0x20], 0
jle 0x4e24e9
add edi, 8
test byte [edi + 0xc], 2
jne 0x4e24d2
mov ecx, dword [esp + 0x1c]
mov edx, dword [edi]
mov eax, dword [esp + 0x1d8]
push ecx
mov ecx, dword [esp + 0x14]
push edx
mov edx, dword [esp + 0x1c]
push eax
push ecx
push edx
call fcn.004dbf00
add esp, 0x14
test eax, eax
je 0x4e24d2
mov eax, dword [esp + 0xa8]
lea ecx, [esp + 0x30]
mov eax, dword [eax + esi*4]
push eax
call fcn.00470df0
mov ecx, dword [esp + 0xbc]
mov eax, dword [ecx + esi*4]
lea ecx, [esp + 0x78]
push eax
call fcn.00470df0
mov edx, dword [esp + 0xe0]
lea ecx, [esp + 0x54]
lea eax, [edx + esi*4]
push eax
mov eax, dword [esp + 0x60]
push eax
call fcn.005131b1
mov eax, dword [edi]
mov ecx, dword [ebx + 8]
push eax
push ecx
mov ecx, ebx
call fcn.00513185
mov ecx, dword [esp + 0x1d0]
push 0xd
call fcn.00470df0
mov eax, dword [esp + 0x20]
mov ecx, dword [ebp + 0x30]
inc eax
add edi, 0x1c
cmp eax, ecx
mov dword [esp + 0x20], eax
jl 0x4e2445
mov eax, dword [esp + 0x1b8]
test eax, eax
jne 0x4e261b
mov ecx, dword [esp + 0x24]
mov dword [esp + 0x74], 0
cmp dword [esp + 0x74], 1
jne 0x4e252d
mov eax, dword [ebp + 0x14]
test al, 0x40
je 0x4e261b
test al, 0x10
jne 0x4e261b
mov ecx, dword [esp + 0x94]
mov ebp, dword [esp + 0x4c]
mov dword [esp + 0x24], ecx
mov eax, dword [ebp + 0xc]
xor ebx, ebx
test eax, eax
jle 0x4e2602
mov edx, dword [ebp + 0x10]
mov eax, dword [edx + ebx*4]
mov edx, dword [ecx + 0x68]
lea eax, [eax + eax*8]
lea edi, [edx + eax*4]
mov eax, dword [esp + 0x44]
push eax
push edi
push ecx
call fcn.004dbcb0
add esp, 0xc
cmp eax, 1
jne 0x4e25f2
test byte [edi + 0xe], 0xc
jne 0x4e25f2
mov ecx, dword [esp + 0x1c]
mov edx, dword [edi]
mov eax, dword [esp + 0x1d8]
push ecx
mov ecx, dword [esp + 0x14]
push edx
mov edx, dword [esp + 0x1c]
push eax
push ecx
push edx
call fcn.004dbf00
add esp, 0x14
test eax, eax
je 0x4e25f2
mov eax, dword [esp + 0xa8]
mov ecx, dword [eax + esi*4]
push ecx
lea ecx, [esp + 0x34]
call fcn.0040a4a0
push esi
lea ecx, [esp + 0xb8]
call fcn.0040a460
mov edx, dword [eax]
lea ecx, [esp + 0x78]
push edx
call fcn.0040a4a0
push esi
lea ecx, [esp + 0xe0]
call fcn.004c1f80
push eax
lea ecx, [esp + 0x58]
call fcn.004c2060
mov eax, dword [edi]
mov ecx, dword [esp + 0x1cc]
push eax
call fcn.004c1f50
mov ecx, dword [esp + 0x1d0]
push 0xc
call fcn.0040a4a0
mov eax, dword [ebp + 0xc]
mov ecx, dword [esp + 0x24]
inc ebx
cmp ebx, eax
jl 0x4e253a
mov eax, dword [esp + 0x74]
mov ebx, dword [esp + 0x1cc]
inc eax
cmp eax, 1
mov dword [esp + 0x74], eax
jle 0x4e2504
mov eax, dword [esp + 0xfc]
inc esi
cmp esi, eax
jl 0x4e1b99
lea ecx, [esp + 0x30]
call fcn.0040a4d0
mov edi, eax
test edi, edi
jle 0x4e2705
push 0
lea ecx, [esp + 0x34]
call fcn.0040a460
mov ecx, dword [eax]
mov esi, 1
cmp edi, esi
mov dword [esp + 0x18], ecx
jl 0x4e2705
push esi
lea ecx, [esp + 0x34]
call fcn.0040a460
mov edx, dword [eax]
mov eax, dword [esp + 0x18]
cmp edx, eax
jne 0x4e267a
inc esi
cmp esi, edi
jle 0x4e265c
jmp 0x4e2705
mov ecx, ebx
call fcn.004e2c90
mov ebp, eax
xor esi, esi
test ebp, ebp
jl 0x4e2705
push 0x584f14
push esi
lea ecx, [esp + 0x5c]
call fcn.004c1f80
push eax
lea eax, [esp + 0x12c]
push eax
call fcn.0051457f
mov edi, eax
push esi
mov ecx, ebx
mov byte [esp + 0x1b0], 0x1c
call fcn.004c1f80
push eax
lea ecx, [esp + 0x134]
push edi
push ecx
call fcn.00514519
push eax
push esi
mov ecx, ebx
mov byte [esp + 0x1b4], 0x1d
call fcn.004c2120
lea ecx, [esp + 0x130]
mov byte [esp + 0x1ac], 0x1c
call fcn.00514336
lea ecx, [esp + 0x124]
mov byte [esp + 0x1ac], 0xe
call fcn.00514336
inc esi
cmp esi, ebp
jle 0x4e2689
mov ecx, ebx
call fcn.004e2c80
cmp eax, 1
jne 0x4e274f
push 0
mov ecx, ebx
call fcn.004c1f80
mov edx, dword [esp + 0x90]
push eax
lea ecx, [esp + 0x108]
lea eax, [edx - 1]
push eax
call fcn.004c1f80
push eax
call fcn.004e2cb0
test al, al
je 0x4e274f
mov ecx, ebx
call fcn.004e2ca0
mov ecx, dword [esp + 0x1d0]
call fcn.0040a440
mov ebp, dword [esp + 0x9c]
mov eax, dword [esp + 0x90]
inc ebp
cmp ebp, eax
mov dword [esp + 0x9c], ebp
jl 0x4dfccb
lea ecx, [esp + 0x2c]
mov byte [esp + 0x1ac], 8
call fcn.00514336
lea ecx, [esp + 0x104]
mov byte [esp + 0x1ac], 5
call fcn.00512f54
lea ecx, [esp + 0xdc]
mov byte [esp + 0x1ac], 4
call fcn.00512f54
lea ecx, [esp + 0x54]
mov byte [esp + 0x1ac], 3
call fcn.00512f54
lea ecx, [esp + 0xb4]
mov byte [esp + 0x1ac], 2
call fcn.00408810
lea ecx, [esp + 0x78]
mov byte [esp + 0x1ac], 1
call fcn.00408810
lea ecx, [esp + 0xa0]
mov byte [esp + 0x1ac], 0
call fcn.00408810
lea ecx, [esp + 0x30]
mov dword [esp + 0x1ac], 0xffffffff
call fcn.00408810
jmp 0x4e2c5c
lea ecx, [esp + 0x2c]
mov byte [esp + 0x1ac], 8
call fcn.00514336
lea ecx, [esp + 0x104]
mov byte [esp + 0x1ac], 5
call fcn.00512f54
lea ecx, [esp + 0xdc]
mov byte [esp + 0x1ac], 4
call fcn.00512f54
lea ecx, [esp + 0x54]
mov byte [esp + 0x1ac], 3
call fcn.00512f54
lea ecx, [esp + 0xb4]
mov byte [esp + 0x1ac], 2
mov dword [esp + 0xb4], edi
call fcn.00470d30
lea ecx, [esp + 0x78]
mov byte [esp + 0x1ac], 1
mov dword [esp + 0x78], edi
call fcn.00470d30
lea ecx, [esp + 0xa0]
mov byte [esp + 0x1ac], 0
mov dword [esp + 0xa0], edi
call fcn.00470d30
mov dword [esp + 0x1ac], 0xffffffff
mov dword [esp + 0x30], edi
jmp 0x4e2c53
mov eax, dword [esp + 0x1bc]
lea ecx, [esp + 0xd0]
lea edx, [esp + 0x10]
push ecx
mov eax, dword [eax]
push edx
mov dword [esp + 0x18], eax
call fcn.004da790
add esp, 8
cmp al, 0x3b
mov byte [esp + 0x14], al
mov dword [esp + 0x1c], 1
je 0x4e28e8
cmp al, 0x3a
jne 0x4e2919
mov ebp, dword [esp + 0xd0]
mov ecx, dword [0x591d94]
mov edx, dword [esp + 0x14]
xor eax, eax
test ebp, ebp
sete al
mov dword [esp + 0x1c], eax
mov eax, dword [esp + 0x1d8]
push ecx
mov ecx, dword [esp + 0x14]
push edx
push eax
push ecx
call dword [0x59277c]
mov ebp, dword [esp + 0x1d0]
mov edi, dword [esp + 0x1cc]
cmp ebx, 5
je 0x4e29ba
cmp ebx, 8
je 0x4e2a73
push 0
push 0
push 0
mov ecx, 0x591f10
call fcn.0045b160
mov edx, dword [0x592848]
xor ebx, ebx
lea eax, [edx - 1]
test eax, eax
mov dword [esp + 0x98], eax
jl 0x4e2bcf
mov eax, dword [0x592844]
mov esi, dword [eax + ebx*4]
cmp byte [esi], 0
je 0x4e29a9
mov ecx, dword [esp + 0x1c]
mov edx, dword [esp + 0x1d8]
mov eax, dword [esp + 0x10]
push ecx
mov ecx, dword [esp + 0x18]
push esi
push edx
push eax
push ecx
call fcn.004dbf00
add esp, 0x14
test eax, eax
je 0x4e29a9
mov eax, dword [edi + 8]
push esi
push eax
mov ecx, edi
call fcn.00513185
push 0x13
mov ecx, ebp
call fcn.00470df0
mov eax, dword [esp + 0x98]
inc ebx
cmp ebx, eax
jle 0x4e2963
jmp 0x4e2bcf
mov eax, dword [0x58cb18]
test eax, eax
je 0x4e2a0e
mov ebx, 0x58cb18
mov edx, dword [esp + 0x1c]
mov esi, dword [ebx + 4]
mov eax, dword [esp + 0x1d8]
mov ecx, dword [esp + 0x10]
push edx
mov edx, dword [esp + 0x18]
push esi
push eax
push ecx
push edx
call fcn.004dbf00
add esp, 0x14
test eax, eax
je 0x4e2a04
mov eax, dword [edi + 8]
push esi
push eax
mov ecx, edi
call fcn.00513185
push 0x11
mov ecx, ebp
call fcn.00470df0
mov eax, dword [ebx + 0x10]
add ebx, 0x10
test eax, eax
jne 0x4e29c8
xor ebx, ebx
lea ecx, [esp + 0xc8]
mov eax, ebx
push ecx
push eax
mov ecx, 0x592184
inc ebx
call fcn.004d03c0
test eax, eax
je 0x4e2a73
mov edx, dword [esp + 0xc8]
mov esi, dword [edx]
cmp byte [esi], 0
je 0x4e2a10
mov eax, dword [esp + 0x1c]
mov ecx, dword [esp + 0x1d8]
mov edx, dword [esp + 0x10]
push eax
mov eax, dword [esp + 0x18]
push esi
push ecx
push edx
push eax
call fcn.004dbf00
add esp, 0x14
test eax, eax
je 0x4e2a10
mov ecx, dword [edi + 8]
push esi
push ecx
mov ecx, edi
call fcn.00513185
push 0x12
mov ecx, ebp
call fcn.00470df0
jmp 0x4e2a10
mov ebp, dword [esp + 0x1c4]
xor ebx, ebx
lea edx, [esp + 0x68]
mov eax, ebx
push edx
push eax
mov ecx, 0x5921dc
inc ebx
call fcn.004d03c0
test eax, eax
je 0x4e2af0
mov eax, dword [esp + 0x68]
mov ecx, dword [eax + 0x44]
test ecx, ecx
je 0x4e2a7c
cmp dword [esp + 0x70], 8
jne 0x4e2aa9
cmp eax, ebp
je 0x4e2a7c
mov esi, dword [eax]
cmp byte [esi], 0
je 0x4e2a7c
mov eax, dword [esp + 0x1c]
mov ecx, dword [esp + 0x1d8]
mov edx, dword [esp + 0x10]
push eax
mov eax, dword [esp + 0x18]
push esi
push ecx
push edx
push eax
call fcn.004dbf00
add esp, 0x14
test eax, eax
je 0x4e2a7c
mov ecx, dword [edi + 8]
push esi
push ecx
mov ecx, edi
call fcn.00513185
mov ecx, dword [esp + 0x1d0]
push 0x12
call fcn.00470df0
jmp 0x4e2a7c
cmp dword [esp + 0x70], 5
jne 0x4e2bcf
mov eax, dword [0x59233c]
mov dword [esp + 0x50], 0
shr eax, 2
test eax, eax
mov dword [esp + 0x90], eax
jle 0x4e2bcf
mov ebp, dword [esp + 0x1d0]
mov eax, dword [esp + 0x50]
mov edx, dword [0x59231c]
mov ecx, dword [esp + 0x44]
push ecx
mov eax, dword [edx + eax*4]
push eax
mov dword [esp + 0x2c], eax
call fcn.004dbc10
add esp, 8
test eax, eax
je 0x4e2bb7
mov eax, dword [esp + 0x24]
xor ebx, ebx
mov ecx, dword [eax + 0x54]
mov esi, dword [eax + 0x58]
test ecx, ecx
jle 0x4e2bb7
mov edx, dword [esp + 0x44]
push edx
push esi
push eax
call fcn.004dbc50
add esp, 0xc
test eax, eax
je 0x4e2baa
test byte [esi + 0x14], 3
jne 0x4e2baa
mov eax, dword [esp + 0x1c]
mov ecx, dword [esi]
mov edx, dword [esp + 0x1d8]
push eax
mov eax, dword [esp + 0x14]
push ecx
mov ecx, dword [esp + 0x1c]
push edx
push eax
push ecx
call fcn.004dbf00
add esp, 0x14
test eax, eax
je 0x4e2baa
mov eax, dword [esi]
mov ecx, dword [edi + 8]
push eax
push ecx
mov ecx, edi
call fcn.00513185
push 2
mov ecx, ebp
call fcn.00470df0
mov eax, dword [esp + 0x24]
inc ebx
add esi, 0x38
cmp ebx, dword [eax + 0x54]
jl 0x4e2b54
mov eax, dword [esp + 0x50]
mov ecx, dword [esp + 0x90]
inc eax
cmp eax, ecx
mov dword [esp + 0x50], eax
jl 0x4e2b25
lea ecx, [esp + 0xdc]
mov byte [esp + 0x1ac], 4
call fcn.00512f54
lea ecx, [esp + 0x54]
mov byte [esp + 0x1ac], 3
call fcn.00512f54
mov esi, 0x5477b0
lea ecx, [esp + 0xb4]
mov byte [esp + 0x1ac], 2
mov dword [esp + 0xb4], esi
call fcn.00470d30
lea ecx, [esp + 0x78]
mov byte [esp + 0x1ac], 1
mov dword [esp + 0x78], esi
call fcn.00470d30
lea ecx, [esp + 0xa0]
mov byte [esp + 0x1ac], 0
mov dword [esp + 0xa0], esi
call fcn.00470d30
mov dword [esp + 0x1ac], 0xffffffff
mov dword [esp + 0x30], esi
lea ecx, [esp + 0x30]
call fcn.00470d30
mov ecx, dword [esp + 0x1a4]
pop edi
pop esi
pop ebp
pop ebx
mov dword fs:[0], ecx
add esp, 0x1a0
ret