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

Disassembly:
push 0xffffffffffffffff
push 0x548faf
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.004a9f80
mov ebx, eax
add esp, 4
mov ecx, 0x599ba0
mov dword [esp + 0x70], ebx
call fcn.00450310
lea ecx, [esp + 0x30]
mov dword [esp + 0x44], eax
call fcn.00473490
mov esi, 0x54d910
mov dword [esp + 0x30], esi
lea ecx, [esp + 0xa0]
mov dword [esp + 0x1ac], 0
call fcn.00473490
mov dword [esp + 0xa0], esi
lea ecx, [esp + 0x78]
mov byte [esp + 0x1ac], 1
call fcn.00473490
mov dword [esp + 0x78], esi
lea ecx, [esp + 0xb4]
mov byte [esp + 0x1ac], 2
call fcn.00473490
mov dword [esp + 0xb4], esi
lea ecx, [esp + 0x54]
mov byte [esp + 0x1ac], 3
call fcn.00518561
lea ecx, [esp + 0xdc]
mov byte [esp + 0x1ac], 4
call fcn.00518561
cmp ebx, 5
mov byte [esp + 0x1ac], 5
je 0x4e5252
cmp ebx, 8
je 0x4e5252
cmp ebx, 1
je 0x4e5252
cmp edi, 0x352
jne 0x4e556f
mov eax, dword [esp + 0x1c0]
lea edi, [eax - 1]
test edi, edi
jl 0x4e556f
mov ecx, dword [esp + 0x1bc]
mov ebp, dword [esp + 0x1d4]
cmp ebp, 1
mov esi, dword [ecx]
jne 0x4e1e66
cmp byte [esi + edi], 0x23
jne 0x4e1e66
xor ebx, ebx
cmp edi, ebx
jle 0x4e1e55
cmp byte [esi + edi - 1], 0x23
je 0x4e556f
mov ecx, dword [esp + 0x1bc]
call fcn.00519901
jmp 0x4e1eed
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.004e1250
add esp, 0x18
cmp eax, ebx
mov dword [esp + 0x10], eax
je 0x4e556f
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.00515e86
mov esi, dword [esp + 0x1bc]
push eax
mov ecx, esi
mov byte [esp + 0x1b0], 6
call fcn.00519a63
lea ecx, [esp + 0x70]
mov byte [esp + 0x1ac], 5
call fcn.00519976
mov ecx, dword [esi]
cmp dword [ecx - 8], ebx
je 0x4e556f
cmp ebp, ebx
je 0x4e2340
mov edx, dword [esp + 0x1bc]
push 0x2e
mov eax, dword [edx]
push eax
mov dword [esp + 0x18], eax
call fcn.00504230
add esp, 8
cmp eax, ebx
mov dword [esp + 0x94], eax
je 0x4e1f13
mov byte [eax], 0
mov eax, dword [0x596a0c]
mov dword [esp + 0x4c], eax
mov eax, dword [0x599f0c]
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.004de910
mov eax, dword [esp + 0x94]
add esp, 4
cmp eax, 1
jne 0x4e1f77
mov eax, dword [esp + 0x94]
test eax, eax
mov dword [esp + 0x10], eax
je 0x4e22f2
mov edx, eax
inc edx
mov dword [esp + 0x10], edx
lea eax, [esp + 0xd0]
lea ecx, [esp + 0x10]
push eax
push ecx
call fcn.004dd120
add esp, 8
mov ebx, 1
cmp al, 0x3b
mov byte [esp + 0x14], al
mov dword [esp + 0x1c], ebx
je 0x4e1fa1
cmp al, 0x3a
jne 0x4e1fd2
mov eax, dword [esp + 0xd0]
mov edx, dword [0x599964]
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 [0x59a34c]
mov eax, dword [esp + 0x90]
xor edi, edi
cmp eax, edi
jne 0x4e21ee
mov eax, edi
push 0
push eax
mov ecx, 0x599e00
inc edi
call fcn.004d25e0
test eax, eax
je 0x4e2048
push eax
mov eax, dword [0x599e00]
mov ecx, 0x599e00
call dword [eax + 0x14]
mov esi, eax
cmp byte [esi], 0
je 0x4e1fe3
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.004de890
add esp, 0x14
test eax, eax
je 0x4e1fe3
mov ecx, dword [ebp + 8]
push esi
push ecx
mov ecx, ebp
call fcn.005187c5
mov ecx, dword [esp + 0x1d0]
push 0xe
call fcn.00473750
jmp 0x4e1fe3
mov eax, dword [esp + 0x9c]
mov dword [esp + 0x50], 0
test eax, eax
jle 0x4e22cc
mov eax, dword [esp + 0x50]
mov edx, dword [0x599eec]
mov ecx, dword [esp + 0x44]
push ecx
mov eax, dword [edx + eax*4]
push eax
mov dword [esp + 0x2c], eax
call fcn.004de5a0
add esp, 8
test eax, eax
je 0x4e21d1
mov eax, dword [esp + 0x24]
xor edi, edi
mov ecx, dword [eax + 0x54]
mov esi, dword [eax + 0x58]
test ecx, ecx
jle 0x4e2171
mov ecx, dword [esi + 0x14]
test ecx, 0x400000
je 0x4e2162
test cl, 3
jne 0x4e2162
mov edx, dword [esp + 0x44]
push edx
push esi
push eax
call fcn.004de5e0
add esp, 0xc
test eax, eax
je 0x4e215e
mov eax, dword [esp + 0x94]
test eax, eax
jne 0x4e210f
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.004de890
add esp, 0x14
test eax, eax
je 0x4e215e
mov eax, dword [esi]
mov ecx, dword [ebp + 8]
push eax
push ecx
mov ecx, ebp
call fcn.005187c5
mov ecx, dword [esp + 0x1d0]
push 2
jmp 0x4e2159
mov eax, dword [esp + 0x40]
test eax, eax
je 0x4e2132
mov ecx, dword [esp + 0x38]
test ecx, ecx
je 0x4e2132
shr eax, 2
push esi
push eax
push ecx
call fcn.004744a0
add esp, 0xc
cmp eax, 0xffffffff
jne 0x4e215e
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.004e1cc0
add esp, 0x14
test eax, eax
je 0x4e215e
push esi
lea ecx, [esp + 0x34]
call fcn.00473750
mov eax, dword [esp + 0x24]
mov ecx, dword [eax + 0x54]
inc edi
add esi, 0x38
cmp edi, ecx
jl 0x4e209a
mov ecx, dword [eax + 0x84]
mov esi, dword [eax + 0x88]
xor edi, edi
test ecx, ecx
jle 0x4e21d1
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.004de890
add esp, 0x14
test eax, eax
je 0x4e21c1
mov eax, dword [esi]
mov ecx, dword [ebp + 8]
push eax
push ecx
mov ecx, ebp
call fcn.005187c5
mov ecx, dword [esp + 0x1d0]
push 0xa
call fcn.00473750
mov eax, dword [esp + 0x24]
inc edi
add esi, 0x20
cmp edi, dword [eax + 0x84]
jl 0x4e2183
mov eax, dword [esp + 0x50]
mov ecx, dword [esp + 0x9c]
inc eax
cmp eax, ecx
mov dword [esp + 0x50], eax
jl 0x4e2063
jmp 0x4e22cc
mov eax, dword [esp + 0x40]
mov dword [esp + 0x20], edi
shr eax, 2
dec eax
mov dword [esp + 0x98], eax
js 0x4e22cc
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 0x4e22b4
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.004de890
add esp, 0x14
test eax, eax
je 0x4e22a5
mov eax, dword [esp + 0x98]
test eax, eax
jle 0x4e2272
mov edx, dword [edi]
lea ecx, [esp + 0x4c]
push edx
call fcn.00519ab3
push 0x58c20c
lea ecx, [esp + 0x50]
call fcn.00519d06
jmp 0x4e227b
lea ecx, [esp + 0x4c]
call fcn.00519901
mov eax, dword [esi]
lea ecx, [esp + 0x4c]
push eax
call fcn.00519d06
mov eax, dword [ebp + 8]
lea ecx, [esp + 0x4c]
push ecx
push eax
mov ecx, ebp
call fcn.005187f1
mov ecx, dword [esp + 0x1d0]
push 0xa
call fcn.00473750
mov eax, dword [edi + 0x30]
inc ebx
add esi, 0x1c
cmp ebx, eax
jl 0x4e2225
mov eax, dword [esp + 0x20]
mov ecx, dword [esp + 0x98]
inc eax
cmp eax, ecx
mov dword [esp + 0x20], eax
jle 0x4e2207
mov eax, dword [esp + 0x90]
inc eax
cmp eax, 2
mov dword [esp + 0x90], eax
jl 0x4e1f41
mov eax, dword [esp + 0x94]
test eax, eax
je 0x4e22f2
mov byte [eax], 0x2e
cmp dword [ebp + 8], 1
jne 0x4e232a
mov eax, dword [ebp + 4]
mov edx, dword [esp + 0x1bc]
mov eax, dword [eax]
mov ecx, dword [edx]
push eax
push ecx
call fcn.00501d1e
add esp, 8
test eax, eax
jne 0x4e232a
push 0xffffffffffffffff
push eax
mov ecx, ebp
call fcn.005185f4
mov ecx, dword [esp + 0x1d0]
call fcn.00473690
lea ecx, [esp + 0x4c]
mov byte [esp + 0x1ac], 5
call fcn.00519976
jmp 0x4e556f
lea ecx, [esp + 0x104]
call fcn.00518561
mov edi, dword [esp + 0x1bc]
mov byte [esp + 0x1ac], 8
push 0x2e
mov ecx, edi
call fcn.00519df1
mov esi, eax
cmp esi, 0xffffffff
je 0x4e2406
lea eax, [esp + 0x70]
push esi
push eax
mov ecx, edi
call fcn.00515f98
mov ecx, dword [esp + 0x10c]
push eax
push ecx
lea ecx, [esp + 0x10c]
mov byte [esp + 0x1b4], 9
call fcn.005187f1
lea ecx, [esp + 0x70]
mov byte [esp + 0x1ac], 8
call fcn.00519976
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.00515f1c
push eax
mov ecx, edi
mov byte [esp + 0x1b0], 0xa
call fcn.00519a63
lea ecx, [esp + 0x6c]
mov byte [esp + 0x1ac], 8
call fcn.00519976
mov ecx, dword [edi]
cmp dword [ecx - 8], ebx
jne 0x4e235b
mov edx, dword [esp + 0x10c]
push 0x599310
push edx
lea ecx, [esp + 0x10c]
call fcn.005187c5
jmp 0x4e241b
mov eax, dword [esp + 0x10c]
push edi
push eax
lea ecx, [esp + 0x10c]
call fcn.005187f1
mov eax, dword [esp + 0x10c]
mov ebp, eax
cmp eax, ebx
mov dword [esp + 0x90], ebp
jne 0x4e2448
lea ecx, [esp + 0x104]
mov byte [esp + 0x1ac], 5
call fcn.00518594
jmp 0x4e556f
xor edi, edi
cmp eax, ebx
jle 0x4e2587
mov ecx, dword [esp + 0x108]
lea edx, [ecx + edi*4]
mov ecx, dword [esp + 0x1bc]
push edx
call fcn.00519a63
mov ecx, dword [esp + 0x1bc]
push 0x5b
xor esi, esi
call fcn.00519df1
cmp eax, 0xffffffff
je 0x4e24b8
mov esi, dword [esp + 0x1bc]
push eax
lea eax, [esp + 0x74]
mov ecx, esi
push eax
call fcn.00515f98
push eax
mov ecx, esi
mov byte [esp + 0x1b0], 0xb
call fcn.00519a63
lea ecx, [esp + 0x70]
mov byte [esp + 0x1ac], 8
call fcn.00519976
mov esi, 1
cmp dword [esp + 0x1b8], ebx
jne 0x4e255c
mov ecx, dword [esp + 0x1bc]
push 0x28
call fcn.00519df1
cmp eax, 0xffffffff
jne 0x4e24ee
mov ecx, dword [esp + 0x1bc]
push 0x592044
call fcn.00516032
cmp eax, 0xffffffff
je 0x4e255c
lea ecx, [ebp - 1]
cmp edi, ecx
je 0x4e242f
mov esi, dword [esp + 0x1bc]
lea edx, [esp + 0x9c]
push eax
push edx
mov ecx, esi
call fcn.00515f98
push eax
lea eax, [esp + 0x70]
push 0x28
push eax
mov byte [esp + 0x1b8], 0xc
call fcn.00515c3d
push eax
mov ecx, esi
mov byte [esp + 0x1b0], 0xd
call fcn.00519a63
lea ecx, [esp + 0x6c]
mov byte [esp + 0x1ac], 0xc
call fcn.00519976
lea ecx, [esp + 0x9c]
mov byte [esp + 0x1ac], 8
call fcn.00519976
jmp 0x4e2560
cmp esi, ebx
je 0x4e257e
mov esi, dword [esp + 0x1bc]
mov ecx, esi
call fcn.00516386
mov ecx, dword [esp + 0x108]
push esi
lea ecx, [ecx + edi*4]
call fcn.00519a63
inc edi
cmp edi, ebp
jl 0x4e2452
mov ecx, 0x599ba0
mov dword [esp + 0x8c], ebx
call fcn.004556f0
mov esi, eax
mov ecx, 0x599ba0
mov dword [esp + 0xf4], esi
call fcn.00455700
cmp esi, ebx
mov dword [esp + 0x70], eax
je 0x4e2600
mov eax, dword [esp + 0x1c4]
cmp eax, ebx
je 0x4e2600
mov edx, eax
mov eax, dword [edx + 0x40]
cmp eax, ebx
je 0x4e2600
push eax
call fcn.004d2530
add esp, 4
cmp eax, 0x2000000
jne 0x4e2600
mov ecx, dword [esp + 0x1c4]
lea eax, [esp + 0x8c]
push ebx
push eax
mov edx, dword [ecx + 0x40]
mov ecx, 0x599de4
push edx
call fcn.004d2df0
test eax, eax
jne 0x4e2600
mov dword [esp + 0x8c], ebx
mov eax, dword [0x596a0c]
mov dword [esp + 0x2c], eax
push ebx
mov ecx, 0x599ba0
mov byte [esp + 0x1b0], 0xe
call fcn.00450aa0
mov ecx, 0x599ba0
mov dword [esp + 0x4c], eax
call fcn.0044f8f0
mov dword [esp + 0x94], eax
mov eax, dword [0x599f0c]
shr eax, 2
cmp ebp, ebx
mov dword [esp + 0x98], eax
mov dword [esp + 0x9c], ebx
jle 0x4e510d
mov ebx, dword [esp + 0x1cc]
mov esi, dword [esp + 0x1bc]
mov ebp, dword [esp + 0x9c]
mov edi, 0x54d7d0
jmp 0x4e267e
mov ebx, dword [esp + 0x1cc]
mov esi, dword [esp + 0x1bc]
mov edi, 0x54d7d0
mov ecx, dword [esp + 0x1d8]
push ecx
call fcn.004de910
add esp, 4
lea ecx, [esp + 0xa0]
call fcn.00473690
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.00473d50
lea ecx, [esp + 0x30]
call fcn.00473690
lea ecx, [esp + 0xb4]
call fcn.00473690
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.00473d50
lea ecx, [esp + 0x78]
call fcn.00473690
push 0xffffffffffffffff
push 0
lea ecx, [esp + 0xe4]
call fcn.005185f4
lea edx, [esp + 0x54]
lea ecx, [esp + 0xdc]
push edx
call fcn.0051873d
push 0xffffffffffffffff
push 0
lea ecx, [esp + 0x5c]
call fcn.005185f4
mov eax, dword [esp + 0x108]
lea ecx, [eax + ebp*4]
push ecx
mov ecx, esi
call fcn.00519a63
mov ecx, dword [esp + 0x1b8]
mov eax, dword [esi]
test ecx, ecx
mov dword [esp + 0x10], eax
jne 0x4e2763
cmp byte [eax], 0x28
jne 0x4e2763
mov esi, 1
inc eax
mov dword [esp + 0xd8], esi
mov dword [esp + 0x10], eax
jmp 0x4e276c
xor esi, esi
mov dword [esp + 0xd8], esi
lea edx, [esp + 0xd0]
lea eax, [esp + 0x10]
push edx
push eax
call fcn.004dd120
add esp, 8
cmp al, 0x3b
mov byte [esp + 0x14], al
mov dword [esp + 0x1c], 1
je 0x4e2795
cmp al, 0x3a
jne 0x4e27c6
mov edx, dword [esp + 0xd0]
mov eax, dword [esp + 0x14]
xor ecx, ecx
test edx, edx
mov edx, dword [0x599964]
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 [0x59a34c]
mov ecx, dword [esp + 0x90]
lea eax, [ecx - 1]
cmp ebp, eax
jge 0x4e3d44
mov eax, dword [esp + 0xb0]
shr eax, 2
mov dword [esp + 0xfc], eax
jne 0x4e318e
test ebp, ebp
jne 0x4e51a9
test esi, esi
je 0x4e2ad5
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, 0x599d90
inc esi
call fcn.004d2d50
test eax, eax
je 0x4e2903
mov edx, dword [esp + 0x28]
mov eax, dword [edx + 8]
test eax, eax
je 0x4e2890
push eax
call fcn.004d2510
add esp, 4
xor ecx, ecx
cmp eax, 0x40000000
sete cl
mov eax, ecx
test eax, eax
je 0x4e2890
mov ecx, dword [esp + 0x28]
mov eax, dword [esp + 0x1c8]
mov edx, dword [ecx + 8]
cmp edx, dword [eax + 8]
jne 0x4e2810
mov eax, dword [0x593cdc]
mov ecx, dword [ecx]
push eax
push ecx
call fcn.00501d1e
add esp, 8
test eax, eax
je 0x4e2810
mov ecx, dword [esp + 0x28]
mov eax, dword [0x593ce0]
push eax
mov ecx, dword [ecx]
push ecx
call fcn.00501d1e
add esp, 8
test eax, eax
je 0x4e2810
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.004e1cc0
add esp, 0x14
test eax, eax
je 0x4e2810
mov ecx, dword [esp + 0x28]
mov edx, dword [ecx + 0x10]
lea ecx, [esp + 0x30]
push edx
call fcn.00473750
push 0
lea ecx, [esp + 0x7c]
call fcn.00473750
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, 0x599ba0
call fcn.00451260
mov ecx, dword [esp + 0x5c]
lea eax, [esp + 0x2c]
push eax
push ecx
lea ecx, [esp + 0x5c]
call fcn.005187f1
jmp 0x4e2810
xor esi, esi
lea edx, [esp + 0xcc]
mov eax, esi
push edx
push eax
mov ecx, 0x599dc8
inc esi
call fcn.004d2d50
test eax, eax
je 0x4e2997
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.004e1cc0
add esp, 0x14
test eax, eax
je 0x4e2905
mov edx, dword [esp + 0xcc]
lea ecx, [esp + 0x30]
mov eax, dword [edx + 0xc]
push eax
call fcn.00473750
push 0
lea ecx, [esp + 0x7c]
call fcn.00473750
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, 0x599ba0
call fcn.00451260
mov edx, dword [esp + 0x5c]
lea ecx, [esp + 0x2c]
push ecx
push edx
lea ecx, [esp + 0x5c]
call fcn.005187f1
jmp 0x4e2905
mov eax, dword [esp + 0x98]
xor ebx, ebx
test eax, eax
jle 0x4e50ef
mov eax, dword [0x599eec]
mov ecx, dword [esp + 0x44]
push ecx
mov eax, dword [eax + ebx*4]
push eax
mov dword [esp + 0x2c], eax
call fcn.004de5a0
add esp, 8
test eax, eax
je 0x4e2ac0
mov eax, dword [esp + 0x24]
xor ebp, ebp
mov ecx, dword [eax + 0x64]
mov edi, dword [eax + 0x68]
test ecx, ecx
jle 0x4e2ac0
mov edx, dword [esp + 0x44]
push edx
push edi
push eax
call fcn.004de640
add esp, 0xc
cmp eax, 1
jne 0x4e2aaf
test byte [edi + 0xe], 0xc
jne 0x4e2aaf
cmp word [edi + 0xc], 0xffff
je 0x4e2aaf
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.004e1cc0
add esp, 0x14
test eax, eax
je 0x4e2aaf
mov esi, dword [edi + 0x10]
push esi
call fcn.004dec70
add esp, 4
cmp eax, 3
jne 0x4e2a66
mov edx, esi
shr edx, 0x10
jne 0x4e2a66
lea eax, [ebx + 1]
and esi, 0xffff
and eax, 0xffff
shl eax, 0x10
or esi, eax
test ebx, ebx
jle 0x4e2a66
or esi, 0x20000000
push esi
lea ecx, [esp + 0x34]
call fcn.00473750
push 0
lea ecx, [esp + 0x7c]
call fcn.00473750
push 0xffff
push 0
lea ecx, [esp + 0x34]
push 0
and esi, 0xdfffffff
push ecx
push esi
push 0
mov ecx, 0x599ae0
call fcn.004652a0
mov eax, dword [esp + 0x5c]
lea edx, [esp + 0x2c]
push edx
push eax
lea ecx, [esp + 0x5c]
call fcn.005187f1
mov eax, dword [esp + 0x24]
inc ebp
add edi, 0x24
cmp ebp, dword [eax + 0x64]
jl 0x4e29de
mov eax, dword [esp + 0x98]
inc ebx
cmp ebx, eax
jl 0x4e29a8
jmp 0x4e50ef
mov eax, dword [esp + 0xf4]
test eax, eax
je 0x4e2ba4
mov eax, dword [esp + 0x1b8]
test eax, eax
jne 0x4e2ba4
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, 0x599de4
inc esi
call fcn.004d2d50
test eax, eax
je 0x4e2ba4
lea edx, [esi - 1]
mov ecx, 0x599de4
push edx
call fcn.004d2d90
mov ecx, dword [esp + 0x40]
mov dword [esp + 0x18], eax
test ecx, ecx
je 0x4e2b54
mov edx, dword [esp + 0x38]
test edx, edx
je 0x4e2b54
shr ecx, 2
push eax
push ecx
push edx
call fcn.004744a0
add esp, 0xc
cmp eax, 0xffffffff
jne 0x4e2b04
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.004e1cc0
add esp, 0x14
test eax, eax
je 0x4e2b04
mov edx, dword [esp + 0x18]
lea ecx, [esp + 0x30]
push edx
call fcn.00473750
push 0
lea ecx, [esp + 0x7c]
call fcn.00473750
mov eax, dword [esp + 0x48]
mov ecx, dword [esp + 0x5c]
add eax, 0xc
push eax
push ecx
lea ecx, [esp + 0x5c]
call fcn.005187f1
jmp 0x4e2b04
mov eax, dword [esp + 0x1c4]
test eax, eax
je 0x4e2c7f
mov ecx, dword [eax + 0x44]
test ecx, ecx
je 0x4e2c7f
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, 0x599dac
inc esi
call fcn.004d2d50
test eax, eax
je 0x4e2c7f
lea eax, [esi - 1]
mov ecx, 0x599dac
push eax
call fcn.004d2d90
push eax
mov dword [esp + 0x1c], eax
call fcn.004d2510
add esp, 4
cmp eax, 0x40000000
jne 0x4e2bcf
mov eax, dword [esp + 0x40]
test eax, eax
je 0x4e2c33
mov ecx, dword [esp + 0x38]
test ecx, ecx
je 0x4e2c33
mov edx, dword [esp + 0x18]
shr eax, 2
push edx
push eax
push ecx
call fcn.004744a0
add esp, 0xc
cmp eax, 0xffffffff
jne 0x4e2bcf
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.004e1cc0
add esp, 0x14
test eax, eax
je 0x4e2bcf
mov edx, dword [esp + 0x18]
lea ecx, [esp + 0x30]
push edx
call fcn.00473750
push 1
lea ecx, [esp + 0x7c]
call fcn.00473750
mov eax, dword [esp + 0x68]
mov ecx, dword [esp + 0x5c]
push eax
push ecx
lea ecx, [esp + 0x5c]
call fcn.005187f1
jmp 0x4e2bcf
mov eax, dword [esp + 0x8c]
test eax, eax
je 0x4e2e7e
mov eax, dword [esp + 0x1b8]
test eax, eax
jne 0x4e2e7e
mov eax, dword [esp + 0x40]
test eax, eax
je 0x4e2cc8
mov ecx, dword [esp + 0x38]
test ecx, ecx
je 0x4e2cc8
shr eax, 2
push 0x10004
push eax
push ecx
call fcn.004744a0
add esp, 0xc
cmp eax, 0xffffffff
jne 0x4e2dc8
mov ebx, dword [esp + 0x4c]
xor edi, edi
mov eax, dword [ebx + 0x24]
mov esi, dword [ebx + 0x28]
test eax, eax
jle 0x4e2dc8
mov ebp, dword [esp + 0x1c]
mov edx, dword [esp + 0x44]
mov eax, dword [esp + 0x94]
push edx
push esi
push eax
call fcn.004de640
add esp, 0xc
test eax, eax
je 0x4e2d2a
cmp word [esi + 0xc], 0x3f5
jne 0x4e2d2a
test byte [esi + 0xe], 0x10
jne 0x4e2d2a
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.004e1cc0
add esp, 0x14
test eax, eax
jne 0x4e2d3a
mov eax, dword [ebx + 0x24]
inc edi
add esi, 0x14
cmp edi, eax
jl 0x4e2ce0
jmp 0x4e2dc8
push 0x10004
lea ecx, [esp + 0x34]
call fcn.00473750
push 0
lea ecx, [esp + 0x7c]
call fcn.00473750
mov edx, dword [esp + 0x8c]
push 0x58c20c
add edx, 0xc
lea eax, [esp + 0x124]
push edx
push eax
call fcn.00519bbf
mov ecx, dword [esi]
lea edx, [esp + 0x11c]
push ecx
push eax
push edx
mov byte [esp + 0x1b8], 0xf
call fcn.00519bbf
push eax
mov eax, dword [esp + 0x60]
push eax
lea ecx, [esp + 0x5c]
mov byte [esp + 0x1b4], 0x10
call fcn.005187f1
lea ecx, [esp + 0x11c]
mov byte [esp + 0x1ac], 0xf
call fcn.00519976
lea ecx, [esp + 0x120]
mov byte [esp + 0x1ac], 0xe
call fcn.00519976
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.004d25e0
mov esi, eax
test esi, esi
je 0x4e2e7e
mov eax, dword [esp + 0x40]
mov ecx, dword [esi]
test eax, eax
mov dword [esp + 0x18], ecx
je 0x4e2e1d
mov edx, dword [esp + 0x38]
test edx, edx
je 0x4e2e1d
shr eax, 2
push ecx
push eax
push edx
call fcn.004744a0
add esp, 0xc
cmp eax, 0xffffffff
jne 0x4e2dd5
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 0x4e2dd5
mov ecx, dword [esp + 0x1d8]
mov edx, dword [esp + 0x10]
push ebx
push esi
push ecx
push edx
push ebp
call fcn.004e1cc0
add esp, 0x14
test eax, eax
je 0x4e2dd5
mov eax, dword [esp + 0x18]
lea ecx, [esp + 0x30]
push eax
call fcn.00473750
push 0
lea ecx, [esp + 0x7c]
call fcn.00473750
mov ecx, dword [esp + 0x5c]
push esi
push ecx
lea ecx, [esp + 0x5c]
call fcn.005187c5
jmp 0x4e2dd5
mov ebp, dword [esp + 0x1c8]
test ebp, ebp
je 0x4e3003
xor ebx, ebx
lea edi, [ebp + 0x14]
mov eax, ebx
push 0
push eax
mov ecx, edi
inc ebx
call fcn.004d25e0
mov esi, eax
test esi, esi
je 0x4e2f48
mov eax, dword [esi]
push eax
mov dword [esp + 0x1c], eax
call fcn.004dec70
add esp, 4
cmp eax, 2
je 0x4e2ec2
cmp eax, 3
jne 0x4e2e92
mov eax, dword [esp + 0x40]
test eax, eax
je 0x4e2ee9
mov ecx, dword [esp + 0x38]
test ecx, ecx
je 0x4e2ee9
mov edx, dword [esp + 0x18]
shr eax, 2
push edx
push eax
push ecx
call fcn.004744a0
add esp, 0xc
cmp eax, 0xffffffff
jne 0x4e2e92
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.004e1cc0
add esp, 0x14
test eax, eax
je 0x4e2e92
mov edx, dword [esp + 0x18]
lea ecx, [esp + 0x30]
push edx
call fcn.00473750
push 0
lea ecx, [esp + 0x7c]
call fcn.00473750
mov eax, dword [esp + 0x5c]
push esi
push eax
lea ecx, [esp + 0x5c]
call fcn.005187c5
jmp 0x4e2e92
xor ebx, ebx
lea edi, [ebp + 0x34]
mov eax, ebx
push 0
push eax
mov ecx, edi
inc ebx
call fcn.004d25e0
mov esi, eax
test esi, esi
je 0x4e3003
mov eax, dword [esi]
push eax
mov dword [esp + 0x1c], eax
call fcn.004dec70
add esp, 4
cmp eax, 2
je 0x4e2f7d
cmp eax, 3
jne 0x4e2f4d
mov eax, dword [esp + 0x40]
test eax, eax
je 0x4e2fa4
mov ecx, dword [esp + 0x38]
test ecx, ecx
je 0x4e2fa4
mov edx, dword [esp + 0x18]
shr eax, 2
push edx
push eax
push ecx
call fcn.004744a0
add esp, 0xc
cmp eax, 0xffffffff
jne 0x4e2f4d
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.004e1cc0
add esp, 0x14
test eax, eax
je 0x4e2f4d
mov edx, dword [esp + 0x18]
lea ecx, [esp + 0x30]
push edx
call fcn.00473750
push 0
lea ecx, [esp + 0x7c]
call fcn.00473750
mov eax, dword [esp + 0x5c]
push esi
push eax
lea ecx, [esp + 0x5c]
call fcn.005187c5
jmp 0x4e2f4d
mov eax, dword [esp + 0x1c4]
test eax, eax
je 0x4e30cd
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.004d25e0
mov esi, eax
test esi, esi
je 0x4e30cd
mov eax, dword [esi]
push eax
mov dword [esp + 0x1c], eax
call fcn.004dec70
add esp, 4
cmp eax, 2
je 0x4e304b
cmp eax, 3
jne 0x4e301b
mov eax, dword [esp + 0x40]
test eax, eax
je 0x4e3072
mov ecx, dword [esp + 0x38]
test ecx, ecx
je 0x4e3072
mov edx, dword [esp + 0x18]
shr eax, 2
push edx
push eax
push ecx
call fcn.004744a0
add esp, 0xc
cmp eax, 0xffffffff
jne 0x4e301b
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.004e1cc0
add esp, 0x14
test eax, eax
je 0x4e301b
mov ecx, dword [esp + 0x18]
push ecx
lea ecx, [esp + 0x34]
call fcn.00473750
push 0
lea ecx, [esp + 0x7c]
call fcn.00473750
mov edx, dword [esp + 0x5c]
push esi
push edx
lea ecx, [esp + 0x5c]
call fcn.005187c5
jmp 0x4e301b
xor edi, edi
mov eax, edi
push 0
push eax
mov ecx, 0x599d70
inc edi
call fcn.004d25e0
mov esi, eax
test esi, esi
je 0x4e50ef
mov eax, dword [esi]
push eax
mov dword [esp + 0x1c], eax
call fcn.004dec70
add esp, 4
cmp eax, 2
je 0x4e3102
cmp eax, 3
jne 0x4e30cf
mov eax, dword [esp + 0x40]
test eax, eax
je 0x4e3129
mov ecx, dword [esp + 0x38]
test ecx, ecx
je 0x4e3129
mov edx, dword [esp + 0x18]
shr eax, 2
push edx
push eax
push ecx
call fcn.004744a0
add esp, 0xc
cmp eax, 0xffffffff
jne 0x4e30cf
mov eax, dword [0x599d70]
push esi
mov ecx, 0x599d70
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.004e1cc0
add esp, 0x14
test eax, eax
je 0x4e30cf
mov edx, dword [esp + 0x18]
lea ecx, [esp + 0x30]
push edx
call fcn.00473750
push 0
lea ecx, [esp + 0x7c]
call fcn.00473750
mov eax, dword [esp + 0x5c]
push esi
push eax
lea ecx, [esp + 0x5c]
call fcn.005187c5
jmp 0x4e30cf
test eax, eax
mov dword [esp + 0x50], 0
jle 0x4e50ef
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, 0x599ba0
mov dword [esp + 0x24], edx
call fcn.00448870
mov ecx, dword [esp + 0xbc]
mov edx, dword [esp + 0x18]
push edx
mov ebx, dword [ecx + esi*4]
call fcn.004dec70
add esp, 4
cmp eax, 2
jne 0x4e38c7
mov eax, dword [esp + 0x18]
push eax
call fcn.004dde30
add esp, 4
cmp eax, 2
jne 0x4e34ac
mov eax, dword [esp + 0x1b8]
test eax, eax
jne 0x4e3d27
mov edx, dword [esp + 0x18]
lea ecx, [esp + 0x48]
push 0
push ecx
push edx
mov ecx, 0x599de4
call fcn.004d2df0
test eax, eax
je 0x4e349e
mov ebx, dword [esp + 0xd8]
test ebx, ebx
jne 0x4e32e4
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.004d25e0
mov esi, eax
test esi, esi
je 0x4e32e8
mov eax, dword [esp + 0x40]
mov ecx, dword [esi]
test eax, eax
mov dword [esp + 0x18], ecx
je 0x4e3283
mov edx, dword [esp + 0x38]
test edx, edx
je 0x4e3283
shr eax, 2
push ecx
push eax
push edx
call fcn.004744a0
add esp, 0xc
cmp eax, 0xffffffff
jne 0x4e323e
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 0x4e323e
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.004e1cc0
add esp, 0x14
test eax, eax
je 0x4e323e
mov eax, dword [esp + 0x18]
lea ecx, [esp + 0x30]
push eax
call fcn.00473750
push 0
lea ecx, [esp + 0x7c]
call fcn.00473750
mov ecx, dword [esp + 0x5c]
push esi
push ecx
lea ecx, [esp + 0x5c]
call fcn.005187c5
jmp 0x4e323e
mov ebp, dword [esp + 0x1c]
mov edx, dword [esp + 0x48]
mov eax, dword [edx + 8]
test eax, eax
je 0x4e349e
lea ecx, [esp + 0x100]
push 0
push ecx
push eax
mov ecx, 0x599dac
call fcn.004d2df0
cmp eax, 1
jne 0x4e349e
test ebx, ebx
jne 0x4e33e2
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.004d25e0
mov esi, eax
test esi, esi
je 0x4e349e
mov eax, dword [esi]
push eax
mov dword [esp + 0x1c], eax
call fcn.004dec70
add esp, 4
cmp eax, 2
je 0x4e335b
cmp eax, 3
jne 0x4e3323
mov eax, dword [esp + 0x40]
test eax, eax
je 0x4e3382
mov ecx, dword [esp + 0x38]
test ecx, ecx
je 0x4e3382
mov edx, dword [esp + 0x18]
shr eax, 2
push edx
push eax
push ecx
call fcn.004744a0
add esp, 0xc
cmp eax, 0xffffffff
jne 0x4e3323
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.004e1cc0
add esp, 0x14
test eax, eax
je 0x4e3323
mov edx, dword [esp + 0x18]
lea ecx, [esp + 0x30]
push edx
call fcn.00473750
push 0
lea ecx, [esp + 0x7c]
call fcn.00473750
mov eax, dword [esp + 0x5c]
push esi
push eax
lea ecx, [esp + 0x5c]
call fcn.005187c5
jmp 0x4e3323
mov eax, dword [esp + 0x100]
mov ecx, dword [eax + 0x3c]
test ecx, ecx
jne 0x4e33f4
xor esi, esi
jmp 0x4e33f7
mov esi, dword [eax + 0x34]
mov eax, dword [eax + 0x3c]
shr eax, 2
test eax, eax
jle 0x4e349e
mov edi, eax
mov edx, dword [esi]
lea ecx, [esp + 0x28]
push 0
push ecx
push edx
mov ecx, 0x599d90
call fcn.004d2df0
test eax, eax
je 0x4e3494
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.004e1cc0
add esp, 0x14
test eax, eax
je 0x4e3494
mov ecx, dword [esp + 0x28]
mov eax, dword [ecx + 0x10]
lea ecx, [esp + 0x30]
push eax
call fcn.00473750
push 0
lea ecx, [esp + 0x7c]
call fcn.00473750
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, 0x599ba0
call fcn.00451260
mov eax, dword [esp + 0x5c]
lea edx, [esp + 0x2c]
push edx
push eax
lea ecx, [esp + 0x5c]
call fcn.005187f1
add esi, 4
dec edi
jne 0x4e3407
mov eax, 0x10001
mov dword [esp + 0x18], eax
jmp 0x4e38d4
mov ecx, dword [esp + 0x18]
push ecx
call fcn.004dde30
add esp, 4
cmp eax, 1
jne 0x4e3624
mov eax, dword [esp + 0xd8]
test eax, eax
jne 0x4e3d27
mov eax, dword [esp + 0x18]
lea edx, [esp + 0xc8]
push 0
push edx
push eax
mov ecx, 0x599d54
call fcn.004d2df0
test eax, eax
je 0x4e3d27
mov ecx, dword [esp + 0xc8]
lea ebx, [ecx + 0xc]
test ebx, ebx
je 0x4e3d27
xor ebp, ebp
mov eax, ebp
push 0
push eax
mov ecx, ebx
inc ebp
call fcn.004d25e0
mov esi, eax
test esi, esi
je 0x4e3d27
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.004dec70
add esp, 4
cmp eax, 2
je 0x4e3540
cmp eax, 3
jne 0x4e3506
mov eax, dword [esp + 0x40]
test eax, eax
je 0x4e3567
mov ecx, dword [esp + 0x38]
test ecx, ecx
je 0x4e3567
mov edx, dword [esp + 0x18]
shr eax, 2
push edx
push eax
push ecx
call fcn.004744a0
add esp, 0xc
cmp eax, 0xffffffff
jne 0x4e3506
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.004e1cc0
add esp, 0x14
test eax, eax
je 0x4e3506
mov ecx, dword [esp + 0x18]
push ecx
lea ecx, [esp + 0x34]
call fcn.00473750
push 0
lea ecx, [esp + 0x7c]
call fcn.00473750
mov edx, dword [esp + 0xe0]
mov eax, dword [esp + 0x50]
push 0x58c20c
lea ecx, [edx + eax*4]
lea edx, [esp + 0x11c]
push ecx
push edx
call fcn.00519bbf
push edi
push eax
lea eax, [esp + 0x134]
mov byte [esp + 0x1b4], 0x11
push eax
call fcn.00519bbf
mov ecx, dword [esp + 0x5c]
push eax
push ecx
lea ecx, [esp + 0x5c]
mov byte [esp + 0x1b4], 0x12
call fcn.005187f1
lea ecx, [esp + 0x12c]
mov byte [esp + 0x1ac], 0x11
call fcn.00519976
lea ecx, [esp + 0x118]
mov byte [esp + 0x1ac], 0xe
call fcn.00519976
jmp 0x4e3506
cmp eax, 3
jne 0x4e3d27
cmp dword [esp + 0xd8], 1
jne 0x4e3d27
mov eax, dword [esp + 0x18]
lea edx, [esp + 0x68]
push 0
push edx
push eax
mov ecx, 0x599dac
call fcn.004d2df0
test eax, eax
je 0x4e3d27
test bl, 1
je 0x4e3772
mov ecx, dword [esp + 0x68]
mov eax, dword [ecx + 0x3c]
mov edx, dword [ecx + 0x3c]
shr eax, 2
test edx, edx
jne 0x4e3677
xor ecx, ecx
jmp 0x4e367a
mov ecx, dword [ecx + 0x34]
test eax, eax
jle 0x4e3d27
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, 0x599d90
call fcn.004d2df0
test eax, eax
je 0x4e3763
mov ecx, dword [esp + 0xd4]
mov eax, dword [0x593cdc]
push eax
mov ecx, dword [ecx]
push ecx
call fcn.00501d1e
add esp, 8
test eax, eax
je 0x4e3763
mov edx, dword [esp + 0xd4]
mov eax, dword [0x593ce0]
push eax
mov ecx, dword [edx]
push ecx
call fcn.00501d1e
add esp, 8
test eax, eax
je 0x4e3763
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.004e1cc0
add esp, 0x14
test eax, eax
je 0x4e3763
mov eax, dword [esp + 0xd4]
lea ecx, [esp + 0x30]
mov eax, dword [eax + 0x10]
push eax
call fcn.00473750
push 0
lea ecx, [esp + 0x7c]
call fcn.00473750
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, 0x599ba0
call fcn.00451260
mov edx, dword [esp + 0x5c]
lea ecx, [esp + 0x2c]
push ecx
push edx
lea ecx, [esp + 0x5c]
call fcn.005187f1
add esi, 4
dec edi
jne 0x4e368e
jmp 0x4e3d27
lea ecx, [esp + 0x168]
call fcn.00473490
lea ecx, [esp + 0x140]
mov byte [esp + 0x1ac], 0x13
call fcn.00473490
lea ecx, [esp + 0x17c]
mov byte [esp + 0x1ac], 0x14
call fcn.00518561
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.004ce610
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 0x4e3873
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.004e1cc0
add esp, 0x14
test eax, eax
je 0x4e386e
mov eax, dword [esi + edi*4]
lea ecx, [esp + 0x30]
push eax
call fcn.00473750
push 0
lea ecx, [esp + 0x7c]
call fcn.00473750
mov edx, dword [esi + edi*4]
push 0xffff
push 0
lea ecx, [esp + 0x34]
push 0
push ecx
push edx
mov ecx, 0x599ba0
call fcn.00451260
mov ecx, dword [esp + 0x5c]
lea eax, [esp + 0x2c]
push eax
push ecx
lea ecx, [esp + 0x5c]
call fcn.005187f1
inc edi
cmp edi, ebx
jl 0x4e37fd
lea ecx, [esp + 0x17c]
mov byte [esp + 0x1ac], 0x14
call fcn.00518594
mov esi, 0x54d7d0
lea ecx, [esp + 0x140]
mov byte [esp + 0x1ac], 0x13
mov dword [esp + 0x140], esi
call fcn.00473690
lea ecx, [esp + 0x168]
mov byte [esp + 0x1ac], 0xe
mov dword [esp + 0x168], esi
call fcn.00473690
jmp 0x4e3d27
cmp eax, 3
jne 0x4e3d27
mov eax, dword [esp + 0x18]
mov ecx, eax
shr ecx, 0x1d
and ecx, 1
mov dword [esp + 0x6c], ecx
je 0x4e38fd
lea edx, [esp + 0x24]
and eax, 0xdfffffff
push edx
push eax
mov ecx, 0x599ae0
mov dword [esp + 0x20], eax
call fcn.004abd00
jmp 0x4e390d
lea ecx, [esp + 0x24]
push ecx
push eax
mov ecx, 0x599ba0
call fcn.00450af0
mov ebx, eax
test ebx, ebx
mov dword [esp + 0x20], ebx
je 0x4e3d27
mov eax, dword [esp + 0xd8]
xor edi, edi
cmp eax, edi
jne 0x4e3bc2
cmp dword [esp + 0x1b8], edi
jne 0x4e3a65
mov eax, dword [esp + 0x40]
cmp eax, edi
je 0x4e3964
mov ecx, dword [esp + 0x38]
cmp ecx, edi
je 0x4e3964
shr eax, 2
push 0x10004
push eax
push ecx
call fcn.004744a0
add esp, 0xc
cmp eax, 0xffffffff
jne 0x4e3a65
mov eax, dword [ebx + 0x24]
mov esi, dword [ebx + 0x28]
cmp eax, edi
jle 0x4e3a65
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.004de640
add esp, 0xc
test eax, eax
je 0x4e39bd
cmp word [esi + 0xc], 0x3f5
jne 0x4e39bd
test byte [esi + 0xe], 0x10
jne 0x4e39bd
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.004e1cc0
add esp, 0x14
test eax, eax
jne 0x4e39cf
mov ecx, dword [esp + 0x20]
inc edi
add esi, 0x14
cmp edi, dword [ecx + 0x24]
jl 0x4e397a
jmp 0x4e3a61
push 0x10004
lea ecx, [esp + 0x34]
call fcn.00473750
push 0
lea ecx, [esp + 0x7c]
call fcn.00473750
mov edx, dword [esp + 0xe0]
mov eax, dword [esp + 0x50]
push 0x58c20c
lea ecx, [edx + eax*4]
lea edx, [esp + 0x138]
push ecx
push edx
call fcn.00519bbf
mov ecx, dword [esi]
lea edx, [esp + 0x13c]
push ecx
push eax
push edx
mov byte [esp + 0x1b8], 0x16
call fcn.00519bbf
push eax
mov eax, dword [esp + 0x60]
push eax
lea ecx, [esp + 0x5c]
mov byte [esp + 0x1b4], 0x17
call fcn.005187f1
lea ecx, [esp + 0x13c]
mov byte [esp + 0x1ac], 0x16
call fcn.00519976
lea ecx, [esp + 0x134]
mov byte [esp + 0x1ac], 0xe
call fcn.00519976
mov ebx, dword [esp + 0x20]
mov eax, dword [ebx + 0x30]
mov edi, dword [ebx + 0x34]
test eax, eax
mov dword [esp + 0x20], 0
jle 0x4e3d27
mov ebp, dword [esp + 0x50]
test byte [edi + 0x14], 2
jne 0x4e3ba6
mov esi, dword [edi]
mov ecx, esi
shr ecx, 0x10
jne 0x4e3ab2
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 0x4e3ab2
or esi, 0x20000000
push esi
call fcn.004dec70
add esp, 4
cmp eax, 2
je 0x4e3ac9
cmp eax, 3
jne 0x4e3ba6
mov eax, dword [esp + 0x40]
test eax, eax
je 0x4e3af0
mov ecx, dword [esp + 0x38]
test ecx, ecx
je 0x4e3af0
shr eax, 2
push esi
push eax
push ecx
call fcn.004744a0
add esp, 0xc
cmp eax, 0xffffffff
jne 0x4e3ba6
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.004e1cc0
add esp, 0x14
test eax, eax
je 0x4e3ba6
push esi
lea ecx, [esp + 0x34]
call fcn.00473750
push 0
lea ecx, [esp + 0x7c]
call fcn.00473750
mov edx, dword [esp + 0xe0]
push 0x58c20c
lea ecx, [esp + 0x12c]
lea eax, [edx + ebp*4]
push eax
push ecx
call fcn.00519bbf
mov edx, dword [edi + 8]
mov byte [esp + 0x1ac], 0x18
push edx
push eax
lea eax, [esp + 0x140]
push eax
call fcn.00519bbf
mov ecx, dword [esp + 0x5c]
push eax
push ecx
lea ecx, [esp + 0x5c]
mov byte [esp + 0x1b4], 0x19
call fcn.005187f1
lea ecx, [esp + 0x138]
mov byte [esp + 0x1ac], 0x18
call fcn.00519976
lea ecx, [esp + 0x128]
mov byte [esp + 0x1ac], 0xe
call fcn.00519976
mov eax, dword [esp + 0x20]
mov ecx, dword [ebx + 0x30]
inc eax
add edi, 0x1c
cmp eax, ecx
mov dword [esp + 0x20], eax
jl 0x4e3a7f
jmp 0x4e3d27
mov ecx, dword [esp + 0x24]
mov dword [esp + 0x74], edi
cmp dword [esp + 0x74], 1
jne 0x4e3bfb
mov edx, dword [esp + 0x20]
mov eax, dword [edx + 0x14]
test al, 0x40
je 0x4e3d27
test al, 0x10
jne 0x4e3d27
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 0x4e3d15
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.004de640
add esp, 0xc
cmp eax, 1
jne 0x4e3d05
test byte [esi + 0xe], 0xc
jne 0x4e3d05
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.004e1cc0
add esp, 0x14
test eax, eax
je 0x4e3d05
mov esi, dword [esi + 0x10]
push esi
call fcn.004dec70
add esp, 4
cmp eax, 3
jne 0x4e3cbc
mov eax, esi
shr eax, 0x10
jne 0x4e3cbc
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 0x4e3cbc
push 0xffff
push 0
lea edx, [esp + 0x34]
push 0
push edx
push esi
push 0
mov ecx, 0x599ae0
call fcn.004652a0
or esi, 0x20000000
push esi
lea ecx, [esp + 0x34]
call fcn.00473750
push 0
lea ecx, [esp + 0x7c]
call fcn.00473750
test esi, 0x20000000
jne 0x4e3cf2
push 0xffff
push 0
lea eax, [esp + 0x34]
push 0
push eax
push esi
mov ecx, 0x599ba0
call fcn.00451260
mov edx, dword [esp + 0x5c]
lea ecx, [esp + 0x2c]
push ecx
push edx
lea ecx, [esp + 0x5c]
call fcn.005187f1
mov eax, dword [ebx + 0xc]
mov ecx, dword [esp + 0x24]
inc edi
cmp edi, eax
jl 0x4e3c12
mov eax, dword [esp + 0x74]
inc eax
cmp eax, 1
mov dword [esp + 0x74], eax
jle 0x4e3bca
mov eax, dword [esp + 0x50]
mov ecx, dword [esp + 0xfc]
inc eax
cmp eax, ecx
mov dword [esp + 0x50], eax
jl 0x4e319e
jmp 0x4e50ef
cmp ecx, 1
jne 0x4e4518
mov ebp, dword [esp + 0x1c]
mov edi, 0x595b4c
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.004de890
add esp, 0x14
test eax, eax
je 0x4e3d92
mov eax, dword [ebx + 8]
push esi
push eax
mov ecx, ebx
call fcn.005187c5
mov ecx, dword [esp + 0x1d0]
push 0xa
call fcn.00473750
add edi, 4
cmp edi, 0x595b54
jl 0x4e3d56
mov eax, dword [esp + 0x1b8]
test eax, eax
jne 0x4e3ef5
mov edi, dword [esp + 0x14]
xor esi, esi
lea ecx, [esp + 0x28]
mov eax, esi
push ecx
push eax
mov ecx, 0x599d90
inc esi
call fcn.004d2d50
test eax, eax
je 0x4e3e86
mov edx, dword [esp + 0x28]
mov eax, dword [edx + 8]
test eax, eax
je 0x4e3e32
push eax
call fcn.004d2510
add esp, 4
xor ecx, ecx
cmp eax, 0x40000000
sete cl
mov eax, ecx
test eax, eax
je 0x4e3e32
mov ecx, dword [esp + 0x28]
mov eax, dword [esp + 0x1c8]
mov edx, dword [ecx + 8]
cmp edx, dword [eax + 8]
jne 0x4e3db2
mov eax, dword [0x593cdc]
mov ecx, dword [ecx]
push eax
push ecx
call fcn.00501d1e
add esp, 8
test eax, eax
je 0x4e3db2
mov ecx, dword [esp + 0x28]
mov eax, dword [0x593ce0]
push eax
mov ecx, dword [ecx]
push ecx
call fcn.00501d1e
add esp, 8
test eax, eax
je 0x4e3db2
mov edx, dword [esp + 0x28]
mov eax, dword [edx]
mov ecx, dword [eax - 8]
test ecx, ecx
je 0x4e3db2
mov ecx, dword [esp + 0x10]
push ebp
push eax
mov eax, dword [esp + 0x1e0]
push eax
push ecx
push edi
call fcn.004de890
add esp, 0x14
test eax, eax
je 0x4e3db2
mov edx, dword [esp + 0x28]
mov eax, dword [ebx + 8]
push edx
push eax
mov ecx, ebx
call fcn.005187f1
mov ecx, dword [esp + 0x1d0]
push 0
call fcn.00473750
jmp 0x4e3db2
xor esi, esi
lea ecx, [esp + 0xcc]
mov eax, esi
push ecx
push eax
mov ecx, 0x599dc8
inc esi
call fcn.004d2d50
test eax, eax
je 0x4e3ef5
mov edx, dword [esp + 0xcc]
mov eax, dword [edx]
mov ecx, dword [eax - 8]
test ecx, ecx
je 0x4e3e88
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.004de890
add esp, 0x14
test eax, eax
je 0x4e3e88
mov eax, dword [esp + 0xcc]
mov ecx, dword [ebx + 8]
push eax
push ecx
mov ecx, ebx
call fcn.005187f1
mov ecx, dword [esp + 0x1d0]
push 0x10
call fcn.00473750
jmp 0x4e3e88
mov eax, dword [esp + 0x1c4]
test eax, eax
je 0x4e3f9a
mov ecx, dword [eax + 0x44]
test ecx, ecx
je 0x4e3f9a
mov edi, dword [esp + 0x14]
xor esi, esi
lea edx, [esp + 0x68]
mov eax, esi
push edx
push eax
mov ecx, 0x599dac
inc esi
call fcn.004d2d50
test eax, eax
je 0x4e3f9a
lea eax, [esi - 1]
mov ecx, 0x599dac
push eax
call fcn.004d2d90
push eax
mov dword [esp + 0x1c], eax
call fcn.004d2510
add esp, 4
cmp eax, 0x40000000
jne 0x4e3f15
mov ecx, dword [esp + 0x68]
mov eax, dword [ecx]
mov ecx, dword [eax - 8]
test ecx, ecx
je 0x4e3f15
mov edx, dword [esp + 0x1d8]
push ebp
push eax
mov eax, dword [esp + 0x18]
push edx
push eax
push edi
call fcn.004de890
add esp, 0x14
test eax, eax
je 0x4e3f15
mov ecx, dword [esp + 0x68]
mov edx, dword [ebx + 8]
push ecx
push edx
mov ecx, ebx
call fcn.005187f1
mov ecx, dword [esp + 0x1d0]
push 0x12
call fcn.00473750
jmp 0x4e3f15
mov eax, dword [esp + 0x8c]
test eax, eax
je 0x4e4190
mov eax, dword [esp + 0x1b8]
test eax, eax
jne 0x4e4190
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 0x4e4056
mov ebx, dword [esp + 0x1cc]
mov ebp, eax
jmp 0x4e3fe3
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.004de640
add esp, 0xc
cmp eax, 1
jne 0x4e404e
test byte [esi + 0xe], 0xc
jne 0x4e404e
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.004de890
add esp, 0x14
test eax, eax
je 0x4e404e
mov esi, dword [esi]
mov eax, dword [ebx + 8]
push esi
push eax
mov ecx, ebx
call fcn.005187c5
mov ecx, dword [esp + 0x1d0]
push 0xc
call fcn.00473750
mov eax, dword [ebp + 0xc]
inc edi
cmp edi, eax
jl 0x4e3fdf
mov eax, dword [esp + 0x4c]
xor ebx, ebx
mov ecx, dword [eax + 0x24]
mov esi, dword [eax + 0x28]
test ecx, ecx
jle 0x4e40df
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.004de640
add esp, 0xc
cmp eax, 1
jne 0x4e40d2
test byte [esi + 0xe], 0x10
jne 0x4e40d2
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.004de890
add esp, 0x14
test eax, eax
je 0x4e40d2
mov eax, dword [esi]
mov ecx, dword [edi + 8]
push eax
push ecx
mov ecx, edi
call fcn.005187c5
push 7
mov ecx, ebp
call fcn.00473750
mov ecx, dword [esp + 0x4c]
inc ebx
add esi, 0x14
cmp ebx, dword [ecx + 0x24]
jl 0x4e4074
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.004d25e0
mov esi, eax
test esi, esi
je 0x4e4190
mov ecx, dword [esp + 0x8c]
lea eax, [ebx - 1]
push eax
add ecx, 0x14
call fcn.004d3010
mov edi, eax
cmp edi, 1
jne 0x4e412c
mov eax, dword [esp + 0x70]
test eax, eax
je 0x4e40eb
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 0x4e40eb
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.004de890
add esp, 0x14
test eax, eax
je 0x4e40eb
mov edx, dword [ebp + 8]
push esi
push edx
mov ecx, ebp
call fcn.005187c5
mov ecx, dword [esp + 0x1d0]
xor eax, eax
test edi, edi
setne al
add eax, 5
push eax
call fcn.00473750
jmp 0x4e40eb
mov ebp, dword [esp + 0x1d0]
mov edi, dword [esp + 0x1cc]
mov ebx, 0x595b54
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.004de890
add esp, 0x14
test eax, eax
je 0x4e41de
mov eax, dword [edi + 8]
push esi
push eax
mov ecx, edi
call fcn.005187c5
push 0xb
mov ecx, ebp
call fcn.00473750
add ebx, 4
cmp ebx, 0x595b5c
jl 0x4e41a3
mov eax, dword [esp + 0x1b8]
test eax, eax
jne 0x4e42c5
mov eax, dword [esp + 0x98]
mov dword [esp + 0x20], 0
test eax, eax
jle 0x4e42c5
mov edx, dword [0x599eec]
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.004de5a0
add esp, 8
test eax, eax
je 0x4e42ad
mov eax, dword [esp + 0x24]
xor ebx, ebx
mov ecx, dword [eax + 0x64]
mov esi, dword [eax + 0x68]
test ecx, ecx
jle 0x4e42ad
mov edx, dword [esp + 0x44]
push edx
push esi
push eax
call fcn.004de640
add esp, 0xc
cmp eax, 1
jne 0x4e42a0
test byte [esi + 0xe], 0xc
jne 0x4e42a0
cmp word [esi + 0xc], 0xffff
je 0x4e42a0
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.004de890
add esp, 0x14
test eax, eax
je 0x4e42a0
mov eax, dword [esi]
mov ecx, dword [edi + 8]
push eax
push ecx
mov ecx, edi
call fcn.005187c5
push 0xb
mov ecx, ebp
call fcn.00473750
mov eax, dword [esp + 0x24]
inc ebx
add esi, 0x24
cmp ebx, dword [eax + 0x64]
jl 0x4e4242
mov eax, dword [esp + 0x20]
mov ecx, dword [esp + 0x98]
inc eax
cmp eax, ecx
mov dword [esp + 0x20], eax
jl 0x4e420f
mov eax, dword [esp + 0x1c8]
test eax, eax
je 0x4e43a7
mov edx, eax
xor ebp, ebp
lea ebx, [edx + 0x14]
mov eax, ebp
push 0
push eax
mov ecx, ebx
inc ebp
call fcn.004d25e0
test eax, eax
je 0x4e433b
mov edx, dword [ebx]
push eax
mov ecx, ebx
call dword [edx + 0x14]
mov esi, eax
cmp byte [esi], 0
je 0x4e42db
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.004de890
add esp, 0x14
test eax, eax
je 0x4e42db
mov ecx, dword [edi + 8]
push esi
push ecx
mov ecx, edi
call fcn.005187c5
mov ecx, dword [esp + 0x1d0]
push 1
call fcn.00473750
jmp 0x4e42db
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.004d25e0
test eax, eax
je 0x4e43a7
mov edx, dword [ebx]
push eax
mov ecx, ebx
call dword [edx + 0x14]
mov esi, eax
cmp byte [esi], 0
je 0x4e4347
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.004de890
add esp, 0x14
test eax, eax
je 0x4e4347
mov ecx, dword [edi + 8]
push esi
push ecx
mov ecx, edi
call fcn.005187c5
mov ecx, dword [esp + 0x1d0]
push 3
call fcn.00473750
jmp 0x4e4347
mov ebx, dword [esp + 0x1c4]
test ebx, ebx
je 0x4e4417
xor ebp, ebp
add ebx, 0xc
mov eax, ebp
push 0
push eax
mov ecx, ebx
inc ebp
call fcn.004d25e0
test eax, eax
je 0x4e4417
mov edx, dword [ebx]
push eax
mov ecx, ebx
call dword [edx + 0x14]
mov esi, eax
cmp byte [esi], 0
je 0x4e43b7
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.004de890
add esp, 0x14
test eax, eax
je 0x4e43b7
mov ecx, dword [edi + 8]
push esi
push ecx
mov ecx, edi
call fcn.005187c5
mov ecx, dword [esp + 0x1d0]
push 8
call fcn.00473750
jmp 0x4e43b7
xor ebx, ebx
mov eax, ebx
push 0
push eax
mov ecx, 0x599d70
inc ebx
call fcn.004d25e0
test eax, eax
je 0x4e4483
mov edx, dword [0x599d70]
push eax
mov ecx, 0x599d70
call dword [edx + 0x14]
mov esi, eax
cmp byte [esi], 0
je 0x4e4419
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.004de890
add esp, 0x14
test eax, eax
je 0x4e4419
mov ecx, dword [edi + 8]
push esi
push ecx
mov ecx, edi
call fcn.005187c5
mov ecx, dword [esp + 0x1d0]
push 9
call fcn.00473750
jmp 0x4e4419
mov eax, dword [esp + 0xf4]
test eax, eax
je 0x4e50ef
mov eax, dword [esp + 0x1b8]
test eax, eax
jne 0x4e50ef
xor esi, esi
lea edx, [esp + 0x48]
mov eax, esi
push edx
push eax
mov ecx, 0x599de4
inc esi
call fcn.004d2d50
test eax, eax
je 0x4e50ef
mov eax, dword [esp + 0x48]
mov eax, dword [eax + 0xc]
mov ecx, dword [eax - 8]
test ecx, ecx
je 0x4e44a3
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.004de890
add esp, 0x14
test eax, eax
je 0x4e44a3
mov edx, dword [esp + 0x48]
mov ecx, dword [esp + 0x1cc]
add edx, 0xc
mov eax, dword [ecx + 8]
push edx
push eax
call fcn.005187f1
mov ecx, dword [esp + 0x1d0]
push 4
call fcn.00473750
jmp 0x4e44a3
mov eax, dword [esp + 0xb0]
shr eax, 2
mov dword [esp + 0xfc], eax
je 0x4e51a9
xor esi, esi
test eax, eax
jle 0x4e4fcb
mov ecx, dword [esp + 0xa8]
push 1
lea eax, [esp + 0x1c]
push 1
mov edx, dword [ecx + esi*4]
push eax
mov ecx, 0x599ba0
mov dword [esp + 0x24], edx
call fcn.00448870
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.004dec70
mov ecx, dword [esp + 0xf8]
add esp, 4
cmp ecx, 1
jne 0x4e48c6
cmp eax, 2
jne 0x4e4c83
mov ecx, dword [esp + 0x18]
push ecx
call fcn.004dde30
add esp, 4
cmp eax, 2
jne 0x4e48cf
mov eax, dword [esp + 0x1b8]
test eax, eax
jne 0x4e4fbb
mov eax, dword [esp + 0x18]
lea edx, [esp + 0x48]
push 0
push edx
push eax
mov ecx, 0x599de4
call fcn.004d2df0
test eax, eax
je 0x4e48b8
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.004d25e0
mov edi, eax
test edi, edi
je 0x4e46f0
mov edx, dword [esp + 0x20]
mov eax, dword [esp + 0x48]
dec edx
push edx
lea ecx, [eax + 0x14]
call fcn.004d3010
mov ebp, eax
cmp ebp, 1
jne 0x4e461e
mov eax, dword [esp + 0x70]
test eax, eax
je 0x4e45d9
mov eax, dword [esp + 0x40]
mov ecx, dword [edi]
test eax, eax
mov dword [esp + 0x18], ecx
je 0x4e4647
mov edx, dword [esp + 0x38]
test edx, edx
je 0x4e4647
shr eax, 2
push ecx
push eax
push edx
call fcn.004744a0
add esp, 0xc
cmp eax, 0xffffffff
jne 0x4e45d9
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 0x4e45d9
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.004de890
add esp, 0x14
test eax, eax
je 0x4e45d9
mov ecx, dword [esp + 0xa8]
mov edx, dword [ecx + esi*4]
lea ecx, [esp + 0x30]
push edx
call fcn.00473750
mov eax, dword [esp + 0xbc]
mov ecx, dword [eax + esi*4]
push ecx
lea ecx, [esp + 0x7c]
call fcn.00473750
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.005187f1
mov edx, dword [ebx + 8]
push edi
push edx
mov ecx, ebx
call fcn.005187c5
mov ecx, dword [esp + 0x1d0]
xor eax, eax
test ebp, ebp
setne al
add eax, 5
push eax
call fcn.00473750
jmp 0x4e45d9
mov ecx, dword [esp + 0x48]
mov eax, dword [ecx + 8]
test eax, eax
je 0x4e48b8
lea edx, [esp + 0xf8]
push 0
push edx
push eax
mov ecx, 0x599dac
call fcn.004d2df0
cmp eax, 1
jne 0x4e48b8
xor ebp, ebp
mov eax, ebp
push 0
push eax
mov eax, dword [esp + 0x100]
inc ebp
lea ecx, [eax + 0xc]
call fcn.004d25e0
test eax, eax
je 0x4e47d7
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 0x4e471f
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.004de890
add esp, 0x14
test eax, eax
je 0x4e471f
mov ecx, dword [esp + 0xa8]
mov edx, dword [ecx + esi*4]
lea ecx, [esp + 0x30]
push edx
call fcn.00473750
mov eax, dword [esp + 0xbc]
mov ecx, dword [eax + esi*4]
push ecx
lea ecx, [esp + 0x7c]
call fcn.00473750
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.005187f1
mov edx, dword [ebx + 8]
push edi
push edx
mov ecx, ebx
call fcn.005187c5
mov ecx, dword [esp + 0x1d0]
push 8
call fcn.00473750
jmp 0x4e471f
mov eax, dword [esp + 0xf8]
mov ecx, dword [eax + 0x3c]
test ecx, ecx
jne 0x4e47e9
xor ecx, ecx
jmp 0x4e47ec
mov ecx, dword [eax + 0x34]
mov eax, dword [eax + 0x3c]
shr eax, 2
test eax, eax
jle 0x4e48b8
mov edi, ecx
mov ebp, eax
mov ecx, dword [edi]
lea eax, [esp + 0x28]
push 0
push eax
push ecx
mov ecx, 0x599d90
call fcn.004d2df0
test eax, eax
je 0x4e48ae
mov edx, dword [esp + 0x28]
mov eax, dword [edx]
mov ecx, dword [eax - 8]
test ecx, ecx
je 0x4e48ae
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.004de890
add esp, 0x14
test eax, eax
je 0x4e48ae
mov edx, dword [esp + 0xa8]
lea ecx, [esp + 0x30]
mov eax, dword [edx + esi*4]
push eax
call fcn.00473750
mov eax, dword [esp + 0xbc]
lea ecx, [esp + 0x78]
mov eax, dword [eax + esi*4]
push eax
call fcn.00473750
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.005187f1
mov ecx, dword [esp + 0x28]
mov eax, dword [ebx + 8]
push ecx
push eax
mov ecx, ebx
call fcn.005187f1
mov ecx, dword [esp + 0x1d0]
push 0
call fcn.00473750
add edi, 4
dec ebp
jne 0x4e47fe
mov eax, 0x10001
mov dword [esp + 0x18], eax
jmp 0x4e4c90
cmp eax, 2
jne 0x4e4c83
mov edx, dword [esp + 0x18]
push edx
call fcn.004dde30
add esp, 4
cmp eax, 1
jne 0x4e49c0
mov ecx, dword [esp + 0x18]
lea eax, [esp + 0xc8]
push 0
push eax
push ecx
mov ecx, 0x599d54
call fcn.004d2df0
test eax, eax
je 0x4e4fbb
xor ebp, ebp
mov edx, dword [esp + 0xc8]
mov eax, ebp
push 0
push eax
lea ecx, [edx + 0xc]
inc ebp
call fcn.004d25e0
test eax, eax
je 0x4e4fbb
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 0x4e4908
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.004de890
add esp, 0x14
test eax, eax
je 0x4e4908
mov ecx, dword [esp + 0xa8]
mov edx, dword [ecx + esi*4]
lea ecx, [esp + 0x30]
push edx
call fcn.00473750
mov eax, dword [esp + 0xbc]
mov ecx, dword [eax + esi*4]
push ecx
lea ecx, [esp + 0x7c]
call fcn.00473750
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.005187f1
mov edx, dword [ebx + 8]
push edi
push edx
mov ecx, ebx
call fcn.005187c5
mov ecx, dword [esp + 0x1d0]
push 0xd
call fcn.00473750
jmp 0x4e4908
mov eax, dword [esp + 0x18]
push eax
call fcn.004dde30
add esp, 4
cmp eax, 3
jne 0x4e4fbb
mov edx, dword [esp + 0x18]
lea ecx, [esp + 0x68]
push 0
push ecx
push edx
mov ecx, 0x599dac
call fcn.004d2df0
test eax, eax
je 0x4e4fbb
test byte [esp + 0x6c], 1
je 0x4e4b38
mov ecx, dword [esp + 0x68]
mov eax, dword [ecx + 0x3c]
mov edx, dword [ecx + 0x3c]
shr eax, 2
test edx, edx
jne 0x4e4a14
xor ecx, ecx
jmp 0x4e4a17
mov ecx, dword [ecx + 0x34]
test eax, eax
jle 0x4e4fbb
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, 0x599d90
push edx
call fcn.004d2df0
test eax, eax
je 0x4e4b19
mov ecx, dword [esp + 0xf0]
mov eax, dword [0x593cdc]
push eax
mov ecx, dword [ecx]
push ecx
call fcn.00501d1e
add esp, 8
test eax, eax
je 0x4e4b19
mov edx, dword [esp + 0xf0]
mov eax, dword [0x593ce0]
push eax
mov ecx, dword [edx]
push ecx
call fcn.00501d1e
add esp, 8
test eax, eax
je 0x4e4b19
mov eax, dword [esp + 0xf0]
mov edi, dword [eax]
cmp byte [edi], 0
je 0x4e4b19
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.004de890
add esp, 0x14
test eax, eax
je 0x4e4b19
mov edx, dword [esp + 0xa8]
lea ecx, [esp + 0x30]
mov eax, dword [edx + esi*4]
push eax
call fcn.00473750
mov eax, dword [esp + 0xbc]
lea ecx, [esp + 0x78]
mov eax, dword [eax + esi*4]
push eax
call fcn.00473750
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.005187f1
mov eax, dword [ebx + 8]
push edi
push eax
mov ecx, ebx
call fcn.005187c5
push 0xc
mov ecx, ebp
call fcn.00473750
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 0x4e4a2e
jmp 0x4e4fbb
lea ecx, [esp + 0x154]
call fcn.00473490
lea ecx, [esp + 0x190]
mov byte [esp + 0x1ac], 0x1a
call fcn.00518561
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.004ce610
mov eax, dword [esp + 0x164]
mov dword [esp + 0x20], 0
shr eax, 2
test eax, eax
mov dword [esp + 0x6c], eax
jle 0x4e4c4b
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 0x4e4c36
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.004de890
add esp, 0x14
test eax, eax
je 0x4e4c36
mov edx, dword [esp + 0xa8]
lea ecx, [esp + 0x30]
mov eax, dword [edx + esi*4]
push eax
call fcn.00473750
mov eax, dword [esp + 0xbc]
lea ecx, [esp + 0x78]
mov eax, dword [eax + esi*4]
push eax
call fcn.00473750
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.005187f1
mov eax, dword [ebx + 8]
push edi
push eax
mov ecx, ebx
call fcn.005187c5
push 0xc
mov ecx, ebp
call fcn.00473750
mov eax, dword [esp + 0x20]
mov ecx, dword [esp + 0x6c]
inc eax
cmp eax, ecx
mov dword [esp + 0x20], eax
jl 0x4e4ba9
lea ecx, [esp + 0x190]
mov byte [esp + 0x1ac], 0x1a
call fcn.00518594
lea ecx, [esp + 0x154]
mov byte [esp + 0x1ac], 0xe
mov dword [esp + 0x154], 0x54d7d0
call fcn.00473690
jmp 0x4e4fbb
cmp eax, 3
jne 0x4e4fbb
mov eax, dword [esp + 0x18]
test eax, 0x20000000
je 0x4e4cb2
lea ecx, [esp + 0x24]
and eax, 0xdfffffff
push ecx
push eax
mov ecx, 0x599ae0
mov dword [esp + 0x20], eax
call fcn.004abd00
jmp 0x4e4cc2
lea edx, [esp + 0x24]
mov ecx, 0x599ba0
push edx
push eax
call fcn.00450af0
mov ebp, eax
test ebp, ebp
je 0x4e4fbb
mov eax, dword [esp + 0x44]
mov ecx, dword [esp + 0x24]
push eax
push ebp
push ecx
call fcn.004de5e0
add esp, 0xc
test eax, eax
je 0x4e4fbb
mov eax, dword [esp + 0x1b8]
test eax, eax
jne 0x4e4dcc
mov eax, dword [ebp + 0x24]
mov edi, dword [ebp + 0x28]
test eax, eax
mov dword [esp + 0x20], 0
jle 0x4e4dcc
mov edx, dword [esp + 0x44]
mov eax, dword [esp + 0x24]
push edx
push edi
push eax
call fcn.004de640
add esp, 0xc
cmp eax, 1
jne 0x4e4db5
test byte [edi + 0xe], 0x10
jne 0x4e4db5
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.004de890
add esp, 0x14
test eax, eax
je 0x4e4db5
mov eax, dword [esp + 0xa8]
lea ecx, [esp + 0x30]
mov eax, dword [eax + esi*4]
push eax
call fcn.00473750
mov ecx, dword [esp + 0xbc]
mov eax, dword [ecx + esi*4]
lea ecx, [esp + 0x78]
push eax
call fcn.00473750
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.005187f1
mov eax, dword [edi]
mov ecx, dword [ebx + 8]
push eax
push ecx
mov ecx, ebx
call fcn.005187c5
mov ecx, dword [esp + 0x1d0]
push 7
call fcn.00473750
mov eax, dword [esp + 0x20]
mov ecx, dword [ebp + 0x24]
inc eax
add edi, 0x14
cmp eax, ecx
mov dword [esp + 0x20], eax
jl 0x4e4d0c
mov eax, dword [ebp + 0x30]
mov edi, dword [ebp + 0x34]
test eax, eax
mov dword [esp + 0x20], 0
jle 0x4e4e89
add edi, 8
test byte [edi + 0xc], 2
jne 0x4e4e72
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.004de890
add esp, 0x14
test eax, eax
je 0x4e4e72
mov eax, dword [esp + 0xa8]
lea ecx, [esp + 0x30]
mov eax, dword [eax + esi*4]
push eax
call fcn.00473750
mov ecx, dword [esp + 0xbc]
mov eax, dword [ecx + esi*4]
lea ecx, [esp + 0x78]
push eax
call fcn.00473750
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.005187f1
mov eax, dword [edi]
mov ecx, dword [ebx + 8]
push eax
push ecx
mov ecx, ebx
call fcn.005187c5
mov ecx, dword [esp + 0x1d0]
push 0xd
call fcn.00473750
mov eax, dword [esp + 0x20]
mov ecx, dword [ebp + 0x30]
inc eax
add edi, 0x1c
cmp eax, ecx
mov dword [esp + 0x20], eax
jl 0x4e4de5
mov eax, dword [esp + 0x1b8]
test eax, eax
jne 0x4e4fbb
mov ecx, dword [esp + 0x24]
mov dword [esp + 0x74], 0
cmp dword [esp + 0x74], 1
jne 0x4e4ecd
mov eax, dword [ebp + 0x14]
test al, 0x40
je 0x4e4fbb
test al, 0x10
jne 0x4e4fbb
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 0x4e4fa2
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.004de640
add esp, 0xc
cmp eax, 1
jne 0x4e4f92
test byte [edi + 0xe], 0xc
jne 0x4e4f92
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.004de890
add esp, 0x14
test eax, eax
je 0x4e4f92
mov eax, dword [esp + 0xa8]
mov ecx, dword [eax + esi*4]
push ecx
lea ecx, [esp + 0x34]
call fcn.0040ca20
push esi
lea ecx, [esp + 0xb8]
call fcn.0040c9e0
mov edx, dword [eax]
lea ecx, [esp + 0x78]
push edx
call fcn.0040ca20
push esi
lea ecx, [esp + 0xe0]
call fcn.004c4900
push eax
lea ecx, [esp + 0x58]
call fcn.004c49e0
mov eax, dword [edi]
mov ecx, dword [esp + 0x1cc]
push eax
call fcn.004c48d0
mov ecx, dword [esp + 0x1d0]
push 0xc
call fcn.0040ca20
mov eax, dword [ebp + 0xc]
mov ecx, dword [esp + 0x24]
inc ebx
cmp ebx, eax
jl 0x4e4eda
mov eax, dword [esp + 0x74]
mov ebx, dword [esp + 0x1cc]
inc eax
cmp eax, 1
mov dword [esp + 0x74], eax
jle 0x4e4ea4
mov eax, dword [esp + 0xfc]
inc esi
cmp esi, eax
jl 0x4e4539
lea ecx, [esp + 0x30]
call fcn.0040ca50
mov edi, eax
test edi, edi
jle 0x4e50a5
push 0
lea ecx, [esp + 0x34]
call fcn.0040c9e0
mov ecx, dword [eax]
mov esi, 1
cmp edi, esi
mov dword [esp + 0x18], ecx
jl 0x4e50a5
push esi
lea ecx, [esp + 0x34]
call fcn.0040c9e0
mov edx, dword [eax]
mov eax, dword [esp + 0x18]
cmp edx, eax
jne 0x4e501a
inc esi
cmp esi, edi
jle 0x4e4ffc
jmp 0x4e50a5
mov ecx, ebx
call fcn.004e5630
mov ebp, eax
xor esi, esi
test ebp, ebp
jl 0x4e50a5
push 0x58c20c
push esi
lea ecx, [esp + 0x5c]
call fcn.004c4900
push eax
lea eax, [esp + 0x12c]
push eax
call fcn.00519bbf
mov edi, eax
push esi
mov ecx, ebx
mov byte [esp + 0x1b0], 0x1c
call fcn.004c4900
push eax
lea ecx, [esp + 0x134]
push edi
push ecx
call fcn.00519b59
push eax
push esi
mov ecx, ebx
mov byte [esp + 0x1b4], 0x1d
call fcn.004c4aa0
lea ecx, [esp + 0x130]
mov byte [esp + 0x1ac], 0x1c
call fcn.00519976
lea ecx, [esp + 0x124]
mov byte [esp + 0x1ac], 0xe
call fcn.00519976
inc esi
cmp esi, ebp
jle 0x4e5029
mov ecx, ebx
call fcn.004e5620
cmp eax, 1
jne 0x4e50ef
push 0
mov ecx, ebx
call fcn.004c4900
mov edx, dword [esp + 0x90]
push eax
lea ecx, [esp + 0x108]
lea eax, [edx - 1]
push eax
call fcn.004c4900
push eax
call fcn.004e5650
test al, al
je 0x4e50ef
mov ecx, ebx
call fcn.004e5640
mov ecx, dword [esp + 0x1d0]
call fcn.0040c9c0
mov ebp, dword [esp + 0x9c]
mov eax, dword [esp + 0x90]
inc ebp
cmp ebp, eax
mov dword [esp + 0x9c], ebp
jl 0x4e266b
lea ecx, [esp + 0x2c]
mov byte [esp + 0x1ac], 8
call fcn.00519976
lea ecx, [esp + 0x104]
mov byte [esp + 0x1ac], 5
call fcn.00518594
lea ecx, [esp + 0xdc]
mov byte [esp + 0x1ac], 4
call fcn.00518594
lea ecx, [esp + 0x54]
mov byte [esp + 0x1ac], 3
call fcn.00518594
lea ecx, [esp + 0xb4]
mov byte [esp + 0x1ac], 2
call fcn.004087f0
lea ecx, [esp + 0x78]
mov byte [esp + 0x1ac], 1
call fcn.004087f0
lea ecx, [esp + 0xa0]
mov byte [esp + 0x1ac], 0
call fcn.004087f0
lea ecx, [esp + 0x30]
mov dword [esp + 0x1ac], 0xffffffff
call fcn.004087f0
jmp 0x4e55fc
lea ecx, [esp + 0x2c]
mov byte [esp + 0x1ac], 8
call fcn.00519976
lea ecx, [esp + 0x104]
mov byte [esp + 0x1ac], 5
call fcn.00518594
lea ecx, [esp + 0xdc]
mov byte [esp + 0x1ac], 4
call fcn.00518594
lea ecx, [esp + 0x54]
mov byte [esp + 0x1ac], 3
call fcn.00518594
lea ecx, [esp + 0xb4]
mov byte [esp + 0x1ac], 2
mov dword [esp + 0xb4], edi
call fcn.00473690
lea ecx, [esp + 0x78]
mov byte [esp + 0x1ac], 1
mov dword [esp + 0x78], edi
call fcn.00473690
lea ecx, [esp + 0xa0]
mov byte [esp + 0x1ac], 0
mov dword [esp + 0xa0], edi
call fcn.00473690
mov dword [esp + 0x1ac], 0xffffffff
mov dword [esp + 0x30], edi
jmp 0x4e55f3
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.004dd120
add esp, 8
cmp al, 0x3b
mov byte [esp + 0x14], al
mov dword [esp + 0x1c], 1
je 0x4e5288
cmp al, 0x3a
jne 0x4e52b9
mov ebp, dword [esp + 0xd0]
mov ecx, dword [0x599964]
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 [0x59a34c]
mov ebp, dword [esp + 0x1d0]
mov edi, dword [esp + 0x1cc]
cmp ebx, 5
je 0x4e535a
cmp ebx, 8
je 0x4e5413
push 0
push 0
push 0
mov ecx, 0x599ae0
call fcn.0045d4a0
mov edx, dword [0x59a418]
xor ebx, ebx
lea eax, [edx - 1]
test eax, eax
mov dword [esp + 0x98], eax
jl 0x4e556f
mov eax, dword [0x59a414]
mov esi, dword [eax + ebx*4]
cmp byte [esi], 0
je 0x4e5349
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.004de890
add esp, 0x14
test eax, eax
je 0x4e5349
mov eax, dword [edi + 8]
push esi
push eax
mov ecx, edi
call fcn.005187c5
push 0x13
mov ecx, ebp
call fcn.00473750
mov eax, dword [esp + 0x98]
inc ebx
cmp ebx, eax
jle 0x4e5303
jmp 0x4e556f
mov eax, dword [0x593f18]
test eax, eax
je 0x4e53ae
mov ebx, 0x593f18
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.004de890
add esp, 0x14
test eax, eax
je 0x4e53a4
mov eax, dword [edi + 8]
push esi
push eax
mov ecx, edi
call fcn.005187c5
push 0x11
mov ecx, ebp
call fcn.00473750
mov eax, dword [ebx + 0x10]
add ebx, 0x10
test eax, eax
jne 0x4e5368
xor ebx, ebx
lea ecx, [esp + 0xc8]
mov eax, ebx
push ecx
push eax
mov ecx, 0x599d54
inc ebx
call fcn.004d2d50
test eax, eax
je 0x4e5413
mov edx, dword [esp + 0xc8]
mov esi, dword [edx]
cmp byte [esi], 0
je 0x4e53b0
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.004de890
add esp, 0x14
test eax, eax
je 0x4e53b0
mov ecx, dword [edi + 8]
push esi
push ecx
mov ecx, edi
call fcn.005187c5
push 0x12
mov ecx, ebp
call fcn.00473750
jmp 0x4e53b0
mov ebp, dword [esp + 0x1c4]
xor ebx, ebx
lea edx, [esp + 0x68]
mov eax, ebx
push edx
push eax
mov ecx, 0x599dac
inc ebx
call fcn.004d2d50
test eax, eax
je 0x4e5490
mov eax, dword [esp + 0x68]
mov ecx, dword [eax + 0x44]
test ecx, ecx
je 0x4e541c
cmp dword [esp + 0x70], 8
jne 0x4e5449
cmp eax, ebp
je 0x4e541c
mov esi, dword [eax]
cmp byte [esi], 0
je 0x4e541c
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.004de890
add esp, 0x14
test eax, eax
je 0x4e541c
mov ecx, dword [edi + 8]
push esi
push ecx
mov ecx, edi
call fcn.005187c5
mov ecx, dword [esp + 0x1d0]
push 0x12
call fcn.00473750
jmp 0x4e541c
cmp dword [esp + 0x70], 5
jne 0x4e556f
mov eax, dword [0x599f0c]
mov dword [esp + 0x50], 0
shr eax, 2
test eax, eax
mov dword [esp + 0x90], eax
jle 0x4e556f
mov ebp, dword [esp + 0x1d0]
mov eax, dword [esp + 0x50]
mov edx, dword [0x599eec]
mov ecx, dword [esp + 0x44]
push ecx
mov eax, dword [edx + eax*4]
push eax
mov dword [esp + 0x2c], eax
call fcn.004de5a0
add esp, 8
test eax, eax
je 0x4e5557
mov eax, dword [esp + 0x24]
xor ebx, ebx
mov ecx, dword [eax + 0x54]
mov esi, dword [eax + 0x58]
test ecx, ecx
jle 0x4e5557
mov edx, dword [esp + 0x44]
push edx
push esi
push eax
call fcn.004de5e0
add esp, 0xc
test eax, eax
je 0x4e554a
test byte [esi + 0x14], 3
jne 0x4e554a
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.004de890
add esp, 0x14
test eax, eax
je 0x4e554a
mov eax, dword [esi]
mov ecx, dword [edi + 8]
push eax
push ecx
mov ecx, edi
call fcn.005187c5
push 2
mov ecx, ebp
call fcn.00473750
mov eax, dword [esp + 0x24]
inc ebx
add esi, 0x38
cmp ebx, dword [eax + 0x54]
jl 0x4e54f4
mov eax, dword [esp + 0x50]
mov ecx, dword [esp + 0x90]
inc eax
cmp eax, ecx
mov dword [esp + 0x50], eax
jl 0x4e54c5
lea ecx, [esp + 0xdc]
mov byte [esp + 0x1ac], 4
call fcn.00518594
lea ecx, [esp + 0x54]
mov byte [esp + 0x1ac], 3
call fcn.00518594
mov esi, 0x54d7d0
lea ecx, [esp + 0xb4]
mov byte [esp + 0x1ac], 2
mov dword [esp + 0xb4], esi
call fcn.00473690
lea ecx, [esp + 0x78]
mov byte [esp + 0x1ac], 1
mov dword [esp + 0x78], esi
call fcn.00473690
lea ecx, [esp + 0xa0]
mov byte [esp + 0x1ac], 0
mov dword [esp + 0xa0], esi
call fcn.00473690
mov dword [esp + 0x1ac], 0xffffffff
mov dword [esp + 0x30], esi
lea ecx, [esp + 0x30]
call fcn.00473690
mov ecx, dword [esp + 0x1a4]
pop edi
pop esi
pop ebp
pop ebx
mov dword fs:[0], ecx
add esp, 0x1a0
ret