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

Disassembly:
push 0xffffffffffffffff
push 0x55a33f
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.004ae8b0
mov ebx, eax
add esp, 4
mov ecx, 0x5b12d0
mov dword [esp + 0x70], ebx
call fcn.00453d20
lea ecx, [esp + 0x30]
mov dword [esp + 0x44], eax
call fcn.00477cf0
mov esi, 0x55f9d0
mov dword [esp + 0x30], esi
lea ecx, [esp + 0xa0]
mov dword [esp + 0x1ac], 0
call fcn.00477cf0
mov dword [esp + 0xa0], esi
lea ecx, [esp + 0x78]
mov byte [esp + 0x1ac], 1
call fcn.00477cf0
mov dword [esp + 0x78], esi
lea ecx, [esp + 0xb4]
mov byte [esp + 0x1ac], 2
call fcn.00477cf0
mov dword [esp + 0xb4], esi
lea ecx, [esp + 0x54]
mov byte [esp + 0x1ac], 3
call fcn.00526946
lea ecx, [esp + 0xdc]
mov byte [esp + 0x1ac], 4
call fcn.00526946
cmp ebx, 5
mov byte [esp + 0x1ac], 5
je 0x4ebf62
cmp ebx, 8
je 0x4ebf62
cmp ebx, 1
je 0x4ebf62
cmp edi, 0x353
jne 0x4ec27f
mov eax, dword [esp + 0x1c0]
lea edi, [eax - 1]
test edi, edi
jl 0x4ec27f
mov ecx, dword [esp + 0x1bc]
mov ebp, dword [esp + 0x1d4]
cmp ebp, 1
mov esi, dword [ecx]
jne 0x4e8b76
cmp byte [esi + edi], 0x23
jne 0x4e8b76
xor ebx, ebx
cmp edi, ebx
jle 0x4e8b65
cmp byte [esi + edi - 1], 0x23
je 0x4ec27f
mov ecx, dword [esp + 0x1bc]
call fcn.00527e8a
jmp 0x4e8bfd
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.004e7f60
add esp, 0x18
cmp eax, ebx
mov dword [esp + 0x10], eax
je 0x4ec27f
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.0052423a
mov esi, dword [esp + 0x1bc]
push eax
mov ecx, esi
mov byte [esp + 0x1b0], 6
call fcn.00528038
lea ecx, [esp + 0x70]
mov byte [esp + 0x1ac], 5
call fcn.00527eff
mov ecx, dword [esi]
cmp dword [ecx - 8], ebx
je 0x4ec27f
cmp ebp, ebx
je 0x4e9050
mov edx, dword [esp + 0x1bc]
push 0x2e
mov eax, dword [edx]
push eax
mov dword [esp + 0x18], eax
call fcn.005124d0
add esp, 8
cmp eax, ebx
mov dword [esp + 0x94], eax
je 0x4e8c23
mov byte [eax], 0
mov eax, dword [0x5ada84]
mov dword [esp + 0x4c], eax
mov eax, dword [0x5b163c]
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.004e54b0
mov eax, dword [esp + 0x94]
add esp, 4
cmp eax, 1
jne 0x4e8c87
mov eax, dword [esp + 0x94]
test eax, eax
mov dword [esp + 0x10], eax
je 0x4e9002
mov edx, eax
inc edx
mov dword [esp + 0x10], edx
lea eax, [esp + 0xd0]
lea ecx, [esp + 0x10]
push eax
push ecx
call fcn.004e3cc0
add esp, 8
mov ebx, 1
cmp al, 0x3b
mov byte [esp + 0x14], al
mov dword [esp + 0x1c], ebx
je 0x4e8cb1
cmp al, 0x3a
jne 0x4e8ce2
mov eax, dword [esp + 0xd0]
mov edx, dword [0x5b1094]
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 [0x5b1a80]
mov eax, dword [esp + 0x90]
xor edi, edi
cmp eax, edi
jne 0x4e8efe
mov eax, edi
push 0
push eax
mov ecx, 0x5b1530
inc edi
call fcn.004d73d0
test eax, eax
je 0x4e8d58
push eax
mov eax, dword [0x5b1530]
mov ecx, 0x5b1530
call dword [eax + 0x14]
mov esi, eax
cmp byte [esi], 0
je 0x4e8cf3
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.004e5430
add esp, 0x14
test eax, eax
je 0x4e8cf3
mov ecx, dword [ebp + 8]
push esi
push ecx
mov ecx, ebp
call fcn.00526baa
mov ecx, dword [esp + 0x1d0]
push 0xe
call fcn.00478020
jmp 0x4e8cf3
mov eax, dword [esp + 0x9c]
mov dword [esp + 0x50], 0
test eax, eax
jle 0x4e8fdc
mov eax, dword [esp + 0x50]
mov edx, dword [0x5b161c]
mov ecx, dword [esp + 0x44]
push ecx
mov eax, dword [edx + eax*4]
push eax
mov dword [esp + 0x2c], eax
call fcn.004e5140
add esp, 8
test eax, eax
je 0x4e8ee1
mov eax, dword [esp + 0x24]
xor edi, edi
mov ecx, dword [eax + 0x54]
mov esi, dword [eax + 0x58]
test ecx, ecx
jle 0x4e8e81
mov ecx, dword [esi + 0x14]
test ecx, 0x400000
je 0x4e8e72
test cl, 3
jne 0x4e8e72
mov edx, dword [esp + 0x44]
push edx
push esi
push eax
call fcn.004e5180
add esp, 0xc
test eax, eax
je 0x4e8e6e
mov eax, dword [esp + 0x94]
test eax, eax
jne 0x4e8e1f
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.004e5430
add esp, 0x14
test eax, eax
je 0x4e8e6e
mov eax, dword [esi]
mov ecx, dword [ebp + 8]
push eax
push ecx
mov ecx, ebp
call fcn.00526baa
mov ecx, dword [esp + 0x1d0]
push 2
jmp 0x4e8e69
mov eax, dword [esp + 0x40]
test eax, eax
je 0x4e8e42
mov ecx, dword [esp + 0x38]
test ecx, ecx
je 0x4e8e42
shr eax, 2
push esi
push eax
push ecx
call fcn.00478d00
add esp, 0xc
cmp eax, 0xffffffff
jne 0x4e8e6e
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.004e89d0
add esp, 0x14
test eax, eax
je 0x4e8e6e
push esi
lea ecx, [esp + 0x34]
call fcn.00478020
mov eax, dword [esp + 0x24]
mov ecx, dword [eax + 0x54]
inc edi
add esi, 0x38
cmp edi, ecx
jl 0x4e8daa
mov ecx, dword [eax + 0x84]
mov esi, dword [eax + 0x88]
xor edi, edi
test ecx, ecx
jle 0x4e8ee1
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.004e5430
add esp, 0x14
test eax, eax
je 0x4e8ed1
mov eax, dword [esi]
mov ecx, dword [ebp + 8]
push eax
push ecx
mov ecx, ebp
call fcn.00526baa
mov ecx, dword [esp + 0x1d0]
push 0xa
call fcn.00478020
mov eax, dword [esp + 0x24]
inc edi
add esi, 0x20
cmp edi, dword [eax + 0x84]
jl 0x4e8e93
mov eax, dword [esp + 0x50]
mov ecx, dword [esp + 0x9c]
inc eax
cmp eax, ecx
mov dword [esp + 0x50], eax
jl 0x4e8d73
jmp 0x4e8fdc
mov eax, dword [esp + 0x40]
mov dword [esp + 0x20], edi
shr eax, 2
dec eax
mov dword [esp + 0x98], eax
js 0x4e8fdc
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 0x4e8fc4
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.004e5430
add esp, 0x14
test eax, eax
je 0x4e8fb5
mov eax, dword [esp + 0x98]
test eax, eax
jle 0x4e8f82
mov edx, dword [edi]
lea ecx, [esp + 0x4c]
push edx
call fcn.00528088
push 0x59e188
lea ecx, [esp + 0x50]
call fcn.005282db
jmp 0x4e8f8b
lea ecx, [esp + 0x4c]
call fcn.00527e8a
mov eax, dword [esi]
lea ecx, [esp + 0x4c]
push eax
call fcn.005282db
mov eax, dword [ebp + 8]
lea ecx, [esp + 0x4c]
push ecx
push eax
mov ecx, ebp
call fcn.00526bd6
mov ecx, dword [esp + 0x1d0]
push 0xa
call fcn.00478020
mov eax, dword [edi + 0x30]
inc ebx
add esi, 0x1c
cmp ebx, eax
jl 0x4e8f35
mov eax, dword [esp + 0x20]
mov ecx, dword [esp + 0x98]
inc eax
cmp eax, ecx
mov dword [esp + 0x20], eax
jle 0x4e8f17
mov eax, dword [esp + 0x90]
inc eax
cmp eax, 2
mov dword [esp + 0x90], eax
jl 0x4e8c51
mov eax, dword [esp + 0x94]
test eax, eax
je 0x4e9002
mov byte [eax], 0x2e
cmp dword [ebp + 8], 1
jne 0x4e903a
mov eax, dword [ebp + 4]
mov edx, dword [esp + 0x1bc]
mov eax, dword [eax]
mov ecx, dword [edx]
push eax
push ecx
call fcn.0050fefa
add esp, 8
test eax, eax
jne 0x4e903a
push 0xffffffffffffffff
push eax
mov ecx, ebp
call fcn.005269d9
mov ecx, dword [esp + 0x1d0]
call fcn.00477ef0
lea ecx, [esp + 0x4c]
mov byte [esp + 0x1ac], 5
call fcn.00527eff
jmp 0x4ec27f
lea ecx, [esp + 0x104]
call fcn.00526946
mov edi, dword [esp + 0x1bc]
mov byte [esp + 0x1ac], 8
push 0x2e
mov ecx, edi
call fcn.005283c6
mov esi, eax
cmp esi, 0xffffffff
je 0x4e9116
lea eax, [esp + 0x70]
push esi
push eax
mov ecx, edi
call fcn.0052434c
mov ecx, dword [esp + 0x10c]
push eax
push ecx
lea ecx, [esp + 0x10c]
mov byte [esp + 0x1b4], 9
call fcn.00526bd6
lea ecx, [esp + 0x70]
mov byte [esp + 0x1ac], 8
call fcn.00527eff
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.005242d0
push eax
mov ecx, edi
mov byte [esp + 0x1b0], 0xa
call fcn.00528038
lea ecx, [esp + 0x6c]
mov byte [esp + 0x1ac], 8
call fcn.00527eff
mov ecx, dword [edi]
cmp dword [ecx - 8], ebx
jne 0x4e906b
mov edx, dword [esp + 0x10c]
push 0x5b0a40
push edx
lea ecx, [esp + 0x10c]
call fcn.00526baa
jmp 0x4e912b
mov eax, dword [esp + 0x10c]
push edi
push eax
lea ecx, [esp + 0x10c]
call fcn.00526bd6
mov eax, dword [esp + 0x10c]
mov ebp, eax
cmp eax, ebx
mov dword [esp + 0x90], ebp
jne 0x4e9158
lea ecx, [esp + 0x104]
mov byte [esp + 0x1ac], 5
call fcn.00526979
jmp 0x4ec27f
xor edi, edi
cmp eax, ebx
jle 0x4e9297
mov ecx, dword [esp + 0x108]
lea edx, [ecx + edi*4]
mov ecx, dword [esp + 0x1bc]
push edx
call fcn.00528038
mov ecx, dword [esp + 0x1bc]
push 0x5b
xor esi, esi
call fcn.005283c6
cmp eax, 0xffffffff
je 0x4e91c8
mov esi, dword [esp + 0x1bc]
push eax
lea eax, [esp + 0x74]
mov ecx, esi
push eax
call fcn.0052434c
push eax
mov ecx, esi
mov byte [esp + 0x1b0], 0xb
call fcn.00528038
lea ecx, [esp + 0x70]
mov byte [esp + 0x1ac], 8
call fcn.00527eff
mov esi, 1
cmp dword [esp + 0x1b8], ebx
jne 0x4e926c
mov ecx, dword [esp + 0x1bc]
push 0x28
call fcn.005283c6
cmp eax, 0xffffffff
jne 0x4e91fe
mov ecx, dword [esp + 0x1bc]
push 0x5a8f64
call fcn.005243e6
cmp eax, 0xffffffff
je 0x4e926c
lea ecx, [ebp - 1]
cmp edi, ecx
je 0x4e913f
mov esi, dword [esp + 0x1bc]
lea edx, [esp + 0x9c]
push eax
push edx
mov ecx, esi
call fcn.0052434c
push eax
lea eax, [esp + 0x70]
push 0x28
push eax
mov byte [esp + 0x1b8], 0xc
call fcn.00523ff1
push eax
mov ecx, esi
mov byte [esp + 0x1b0], 0xd
call fcn.00528038
lea ecx, [esp + 0x6c]
mov byte [esp + 0x1ac], 0xc
call fcn.00527eff
lea ecx, [esp + 0x9c]
mov byte [esp + 0x1ac], 8
call fcn.00527eff
jmp 0x4e9270
cmp esi, ebx
je 0x4e928e
mov esi, dword [esp + 0x1bc]
mov ecx, esi
call fcn.0052473a
mov ecx, dword [esp + 0x108]
push esi
lea ecx, [ecx + edi*4]
call fcn.00528038
inc edi
cmp edi, ebp
jl 0x4e9162
mov ecx, 0x5b12d0
mov dword [esp + 0x8c], ebx
call fcn.00458fd0
mov esi, eax
mov ecx, 0x5b12d0
mov dword [esp + 0xf4], esi
call fcn.00458fe0
cmp esi, ebx
mov dword [esp + 0x70], eax
je 0x4e9310
mov eax, dword [esp + 0x1c4]
cmp eax, ebx
je 0x4e9310
mov edx, eax
mov eax, dword [edx + 0x40]
cmp eax, ebx
je 0x4e9310
push eax
call fcn.004d7320
add esp, 4
cmp eax, 0x2000000
jne 0x4e9310
mov ecx, dword [esp + 0x1c4]
lea eax, [esp + 0x8c]
push ebx
push eax
mov edx, dword [ecx + 0x40]
mov ecx, 0x5b1514
push edx
call fcn.004d7c30
test eax, eax
jne 0x4e9310
mov dword [esp + 0x8c], ebx
mov eax, dword [0x5ada84]
mov dword [esp + 0x2c], eax
push ebx
mov ecx, 0x5b12d0
mov byte [esp + 0x1b0], 0xe
call fcn.00454370
mov ecx, 0x5b12d0
mov dword [esp + 0x4c], eax
call fcn.004532f0
mov dword [esp + 0x94], eax
mov eax, dword [0x5b163c]
shr eax, 2
cmp ebp, ebx
mov dword [esp + 0x98], eax
mov dword [esp + 0x9c], ebx
jle 0x4ebe1d
mov ebx, dword [esp + 0x1cc]
mov esi, dword [esp + 0x1bc]
mov ebp, dword [esp + 0x9c]
mov edi, 0x55f890
jmp 0x4e938e
mov ebx, dword [esp + 0x1cc]
mov esi, dword [esp + 0x1bc]
mov edi, 0x55f890
mov ecx, dword [esp + 0x1d8]
push ecx
call fcn.004e54b0
add esp, 4
lea ecx, [esp + 0xa0]
call fcn.00477ef0
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.004785b0
lea ecx, [esp + 0x30]
call fcn.00477ef0
lea ecx, [esp + 0xb4]
call fcn.00477ef0
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.004785b0
lea ecx, [esp + 0x78]
call fcn.00477ef0
push 0xffffffffffffffff
push 0
lea ecx, [esp + 0xe4]
call fcn.005269d9
lea edx, [esp + 0x54]
lea ecx, [esp + 0xdc]
push edx
call fcn.00526b22
push 0xffffffffffffffff
push 0
lea ecx, [esp + 0x5c]
call fcn.005269d9
mov eax, dword [esp + 0x108]
lea ecx, [eax + ebp*4]
push ecx
mov ecx, esi
call fcn.00528038
mov ecx, dword [esp + 0x1b8]
mov eax, dword [esi]
test ecx, ecx
mov dword [esp + 0x10], eax
jne 0x4e9473
cmp byte [eax], 0x28
jne 0x4e9473
mov esi, 1
inc eax
mov dword [esp + 0xd8], esi
mov dword [esp + 0x10], eax
jmp 0x4e947c
xor esi, esi
mov dword [esp + 0xd8], esi
lea edx, [esp + 0xd0]
lea eax, [esp + 0x10]
push edx
push eax
call fcn.004e3cc0
add esp, 8
cmp al, 0x3b
mov byte [esp + 0x14], al
mov dword [esp + 0x1c], 1
je 0x4e94a5
cmp al, 0x3a
jne 0x4e94d6
mov edx, dword [esp + 0xd0]
mov eax, dword [esp + 0x14]
xor ecx, ecx
test edx, edx
mov edx, dword [0x5b1094]
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 [0x5b1a80]
mov ecx, dword [esp + 0x90]
lea eax, [ecx - 1]
cmp ebp, eax
jge 0x4eaa54
mov eax, dword [esp + 0xb0]
shr eax, 2
mov dword [esp + 0xfc], eax
jne 0x4e9e9e
test ebp, ebp
jne 0x4ebeb9
test esi, esi
je 0x4e97e5
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, 0x5b14c0
inc esi
call fcn.004d7b90
test eax, eax
je 0x4e9613
mov edx, dword [esp + 0x28]
mov eax, dword [edx + 0xc]
test eax, eax
je 0x4e95a0
push eax
call fcn.004d7300
add esp, 4
xor ecx, ecx
cmp eax, 0x40000000
sete cl
mov eax, ecx
test eax, eax
je 0x4e95a0
mov ecx, dword [esp + 0x28]
mov eax, dword [esp + 0x1c8]
mov edx, dword [ecx + 0xc]
cmp edx, dword [eax + 0xc]
jne 0x4e9520
mov eax, dword [0x5aad24]
mov ecx, dword [ecx]
push eax
push ecx
call fcn.0050fefa
add esp, 8
test eax, eax
je 0x4e9520
mov ecx, dword [esp + 0x28]
mov eax, dword [0x5aad28]
push eax
mov ecx, dword [ecx]
push ecx
call fcn.0050fefa
add esp, 8
test eax, eax
je 0x4e9520
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.004e89d0
add esp, 0x14
test eax, eax
je 0x4e9520
mov ecx, dword [esp + 0x28]
mov edx, dword [ecx + 0x14]
lea ecx, [esp + 0x30]
push edx
call fcn.00478020
push 0
lea ecx, [esp + 0x7c]
call fcn.00478020
mov ecx, dword [esp + 0x28]
push 0xffff
push 0
lea eax, [esp + 0x34]
mov edx, dword [ecx + 0x14]
push 0
push eax
push edx
mov ecx, 0x5b12d0
call fcn.00454b30
mov ecx, dword [esp + 0x5c]
lea eax, [esp + 0x2c]
push eax
push ecx
lea ecx, [esp + 0x5c]
call fcn.00526bd6
jmp 0x4e9520
xor esi, esi
lea edx, [esp + 0xcc]
mov eax, esi
push edx
push eax
mov ecx, 0x5b14f8
inc esi
call fcn.004d7b90
test eax, eax
je 0x4e96a7
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.004e89d0
add esp, 0x14
test eax, eax
je 0x4e9615
mov edx, dword [esp + 0xcc]
lea ecx, [esp + 0x30]
mov eax, dword [edx + 0xc]
push eax
call fcn.00478020
push 0
lea ecx, [esp + 0x7c]
call fcn.00478020
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, 0x5b12d0
call fcn.00454b30
mov edx, dword [esp + 0x5c]
lea ecx, [esp + 0x2c]
push ecx
push edx
lea ecx, [esp + 0x5c]
call fcn.00526bd6
jmp 0x4e9615
mov eax, dword [esp + 0x98]
xor ebx, ebx
test eax, eax
jle 0x4ebdff
mov eax, dword [0x5b161c]
mov ecx, dword [esp + 0x44]
push ecx
mov eax, dword [eax + ebx*4]
push eax
mov dword [esp + 0x2c], eax
call fcn.004e5140
add esp, 8
test eax, eax
je 0x4e97d0
mov eax, dword [esp + 0x24]
xor ebp, ebp
mov ecx, dword [eax + 0x64]
mov edi, dword [eax + 0x68]
test ecx, ecx
jle 0x4e97d0
mov edx, dword [esp + 0x44]
push edx
push edi
push eax
call fcn.004e51e0
add esp, 0xc
cmp eax, 1
jne 0x4e97bf
test byte [edi + 0xe], 0xc
jne 0x4e97bf
cmp word [edi + 0xc], 0xffff
je 0x4e97bf
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.004e89d0
add esp, 0x14
test eax, eax
je 0x4e97bf
mov esi, dword [edi + 0x10]
push esi
call fcn.004e5810
add esp, 4
cmp eax, 3
jne 0x4e9776
mov edx, esi
shr edx, 0x10
jne 0x4e9776
lea eax, [ebx + 1]
and esi, 0xffff
and eax, 0xffff
shl eax, 0x10
or esi, eax
test ebx, ebx
jle 0x4e9776
or esi, 0x20000000
push esi
lea ecx, [esp + 0x34]
call fcn.00478020
push 0
lea ecx, [esp + 0x7c]
call fcn.00478020
push 0xffff
push 0
lea ecx, [esp + 0x34]
push 0
and esi, 0xdfffffff
push ecx
push esi
push 0
mov ecx, 0x5b1210
call fcn.00469130
mov eax, dword [esp + 0x5c]
lea edx, [esp + 0x2c]
push edx
push eax
lea ecx, [esp + 0x5c]
call fcn.00526bd6
mov eax, dword [esp + 0x24]
inc ebp
add edi, 0x24
cmp ebp, dword [eax + 0x64]
jl 0x4e96ee
mov eax, dword [esp + 0x98]
inc ebx
cmp ebx, eax
jl 0x4e96b8
jmp 0x4ebdff
mov eax, dword [esp + 0xf4]
test eax, eax
je 0x4e98b4
mov eax, dword [esp + 0x1b8]
test eax, eax
jne 0x4e98b4
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, 0x5b1514
inc esi
call fcn.004d7b90
test eax, eax
je 0x4e98b4
lea edx, [esi - 1]
mov ecx, 0x5b1514
push edx
call fcn.004d7bd0
mov ecx, dword [esp + 0x40]
mov dword [esp + 0x18], eax
test ecx, ecx
je 0x4e9864
mov edx, dword [esp + 0x38]
test edx, edx
je 0x4e9864
shr ecx, 2
push eax
push ecx
push edx
call fcn.00478d00
add esp, 0xc
cmp eax, 0xffffffff
jne 0x4e9814
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.004e89d0
add esp, 0x14
test eax, eax
je 0x4e9814
mov edx, dword [esp + 0x18]
lea ecx, [esp + 0x30]
push edx
call fcn.00478020
push 0
lea ecx, [esp + 0x7c]
call fcn.00478020
mov eax, dword [esp + 0x48]
mov ecx, dword [esp + 0x5c]
add eax, 0xc
push eax
push ecx
lea ecx, [esp + 0x5c]
call fcn.00526bd6
jmp 0x4e9814
mov eax, dword [esp + 0x1c4]
test eax, eax
je 0x4e998f
mov ecx, dword [eax + 0x44]
test ecx, ecx
je 0x4e998f
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, 0x5b14dc
inc esi
call fcn.004d7b90
test eax, eax
je 0x4e998f
lea eax, [esi - 1]
mov ecx, 0x5b14dc
push eax
call fcn.004d7bd0
push eax
mov dword [esp + 0x1c], eax
call fcn.004d7300
add esp, 4
cmp eax, 0x40000000
jne 0x4e98df
mov eax, dword [esp + 0x40]
test eax, eax
je 0x4e9943
mov ecx, dword [esp + 0x38]
test ecx, ecx
je 0x4e9943
mov edx, dword [esp + 0x18]
shr eax, 2
push edx
push eax
push ecx
call fcn.00478d00
add esp, 0xc
cmp eax, 0xffffffff
jne 0x4e98df
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.004e89d0
add esp, 0x14
test eax, eax
je 0x4e98df
mov edx, dword [esp + 0x18]
lea ecx, [esp + 0x30]
push edx
call fcn.00478020
push 1
lea ecx, [esp + 0x7c]
call fcn.00478020
mov eax, dword [esp + 0x68]
mov ecx, dword [esp + 0x5c]
push eax
push ecx
lea ecx, [esp + 0x5c]
call fcn.00526bd6
jmp 0x4e98df
mov eax, dword [esp + 0x8c]
test eax, eax
je 0x4e9b8e
mov eax, dword [esp + 0x1b8]
test eax, eax
jne 0x4e9b8e
mov eax, dword [esp + 0x40]
test eax, eax
je 0x4e99d8
mov ecx, dword [esp + 0x38]
test ecx, ecx
je 0x4e99d8
shr eax, 2
push 0x10004
push eax
push ecx
call fcn.00478d00
add esp, 0xc
cmp eax, 0xffffffff
jne 0x4e9ad8
mov ebx, dword [esp + 0x4c]
xor edi, edi
mov eax, dword [ebx + 0x24]
mov esi, dword [ebx + 0x28]
test eax, eax
jle 0x4e9ad8
mov ebp, dword [esp + 0x1c]
mov edx, dword [esp + 0x44]
mov eax, dword [esp + 0x94]
push edx
push esi
push eax
call fcn.004e51e0
add esp, 0xc
test eax, eax
je 0x4e9a3a
cmp word [esi + 0xc], 0x3f5
jne 0x4e9a3a
test byte [esi + 0xe], 0x10
jne 0x4e9a3a
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.004e89d0
add esp, 0x14
test eax, eax
jne 0x4e9a4a
mov eax, dword [ebx + 0x24]
inc edi
add esi, 0x14
cmp edi, eax
jl 0x4e99f0
jmp 0x4e9ad8
push 0x10004
lea ecx, [esp + 0x34]
call fcn.00478020
push 0
lea ecx, [esp + 0x7c]
call fcn.00478020
mov edx, dword [esp + 0x8c]
push 0x59e188
add edx, 0xc
lea eax, [esp + 0x124]
push edx
push eax
call fcn.00528194
mov ecx, dword [esi]
lea edx, [esp + 0x11c]
push ecx
push eax
push edx
mov byte [esp + 0x1b8], 0xf
call fcn.00528194
push eax
mov eax, dword [esp + 0x60]
push eax
lea ecx, [esp + 0x5c]
mov byte [esp + 0x1b4], 0x10
call fcn.00526bd6
lea ecx, [esp + 0x11c]
mov byte [esp + 0x1ac], 0xf
call fcn.00527eff
lea ecx, [esp + 0x120]
mov byte [esp + 0x1ac], 0xe
call fcn.00527eff
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.004d73d0
mov esi, eax
test esi, esi
je 0x4e9b8e
mov eax, dword [esp + 0x40]
mov ecx, dword [esi]
test eax, eax
mov dword [esp + 0x18], ecx
je 0x4e9b2d
mov edx, dword [esp + 0x38]
test edx, edx
je 0x4e9b2d
shr eax, 2
push ecx
push eax
push edx
call fcn.00478d00
add esp, 0xc
cmp eax, 0xffffffff
jne 0x4e9ae5
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 0x4e9ae5
mov ecx, dword [esp + 0x1d8]
mov edx, dword [esp + 0x10]
push ebx
push esi
push ecx
push edx
push ebp
call fcn.004e89d0
add esp, 0x14
test eax, eax
je 0x4e9ae5
mov eax, dword [esp + 0x18]
lea ecx, [esp + 0x30]
push eax
call fcn.00478020
push 0
lea ecx, [esp + 0x7c]
call fcn.00478020
mov ecx, dword [esp + 0x5c]
push esi
push ecx
lea ecx, [esp + 0x5c]
call fcn.00526baa
jmp 0x4e9ae5
mov ebp, dword [esp + 0x1c8]
test ebp, ebp
je 0x4e9d13
xor ebx, ebx
lea edi, [ebp + 0x18]
mov eax, ebx
push 0
push eax
mov ecx, edi
inc ebx
call fcn.004d73d0
mov esi, eax
test esi, esi
je 0x4e9c58
mov eax, dword [esi]
push eax
mov dword [esp + 0x1c], eax
call fcn.004e5810
add esp, 4
cmp eax, 2
je 0x4e9bd2
cmp eax, 3
jne 0x4e9ba2
mov eax, dword [esp + 0x40]
test eax, eax
je 0x4e9bf9
mov ecx, dword [esp + 0x38]
test ecx, ecx
je 0x4e9bf9
mov edx, dword [esp + 0x18]
shr eax, 2
push edx
push eax
push ecx
call fcn.00478d00
add esp, 0xc
cmp eax, 0xffffffff
jne 0x4e9ba2
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.004e89d0
add esp, 0x14
test eax, eax
je 0x4e9ba2
mov edx, dword [esp + 0x18]
lea ecx, [esp + 0x30]
push edx
call fcn.00478020
push 0
lea ecx, [esp + 0x7c]
call fcn.00478020
mov eax, dword [esp + 0x5c]
push esi
push eax
lea ecx, [esp + 0x5c]
call fcn.00526baa
jmp 0x4e9ba2
xor ebx, ebx
lea edi, [ebp + 0x38]
mov eax, ebx
push 0
push eax
mov ecx, edi
inc ebx
call fcn.004d73d0
mov esi, eax
test esi, esi
je 0x4e9d13
mov eax, dword [esi]
push eax
mov dword [esp + 0x1c], eax
call fcn.004e5810
add esp, 4
cmp eax, 2
je 0x4e9c8d
cmp eax, 3
jne 0x4e9c5d
mov eax, dword [esp + 0x40]
test eax, eax
je 0x4e9cb4
mov ecx, dword [esp + 0x38]
test ecx, ecx
je 0x4e9cb4
mov edx, dword [esp + 0x18]
shr eax, 2
push edx
push eax
push ecx
call fcn.00478d00
add esp, 0xc
cmp eax, 0xffffffff
jne 0x4e9c5d
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.004e89d0
add esp, 0x14
test eax, eax
je 0x4e9c5d
mov edx, dword [esp + 0x18]
lea ecx, [esp + 0x30]
push edx
call fcn.00478020
push 0
lea ecx, [esp + 0x7c]
call fcn.00478020
mov eax, dword [esp + 0x5c]
push esi
push eax
lea ecx, [esp + 0x5c]
call fcn.00526baa
jmp 0x4e9c5d
mov eax, dword [esp + 0x1c4]
test eax, eax
je 0x4e9ddd
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.004d73d0
mov esi, eax
test esi, esi
je 0x4e9ddd
mov eax, dword [esi]
push eax
mov dword [esp + 0x1c], eax
call fcn.004e5810
add esp, 4
cmp eax, 2
je 0x4e9d5b
cmp eax, 3
jne 0x4e9d2b
mov eax, dword [esp + 0x40]
test eax, eax
je 0x4e9d82
mov ecx, dword [esp + 0x38]
test ecx, ecx
je 0x4e9d82
mov edx, dword [esp + 0x18]
shr eax, 2
push edx
push eax
push ecx
call fcn.00478d00
add esp, 0xc
cmp eax, 0xffffffff
jne 0x4e9d2b
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.004e89d0
add esp, 0x14
test eax, eax
je 0x4e9d2b
mov ecx, dword [esp + 0x18]
push ecx
lea ecx, [esp + 0x34]
call fcn.00478020
push 0
lea ecx, [esp + 0x7c]
call fcn.00478020
mov edx, dword [esp + 0x5c]
push esi
push edx
lea ecx, [esp + 0x5c]
call fcn.00526baa
jmp 0x4e9d2b
xor edi, edi
mov eax, edi
push 0
push eax
mov ecx, 0x5b14a0
inc edi
call fcn.004d73d0
mov esi, eax
test esi, esi
je 0x4ebdff
mov eax, dword [esi]
push eax
mov dword [esp + 0x1c], eax
call fcn.004e5810
add esp, 4
cmp eax, 2
je 0x4e9e12
cmp eax, 3
jne 0x4e9ddf
mov eax, dword [esp + 0x40]
test eax, eax
je 0x4e9e39
mov ecx, dword [esp + 0x38]
test ecx, ecx
je 0x4e9e39
mov edx, dword [esp + 0x18]
shr eax, 2
push edx
push eax
push ecx
call fcn.00478d00
add esp, 0xc
cmp eax, 0xffffffff
jne 0x4e9ddf
mov eax, dword [0x5b14a0]
push esi
mov ecx, 0x5b14a0
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.004e89d0
add esp, 0x14
test eax, eax
je 0x4e9ddf
mov edx, dword [esp + 0x18]
lea ecx, [esp + 0x30]
push edx
call fcn.00478020
push 0
lea ecx, [esp + 0x7c]
call fcn.00478020
mov eax, dword [esp + 0x5c]
push esi
push eax
lea ecx, [esp + 0x5c]
call fcn.00526baa
jmp 0x4e9ddf
test eax, eax
mov dword [esp + 0x50], 0
jle 0x4ebdff
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, 0x5b12d0
mov dword [esp + 0x24], edx
call fcn.0044c0b0
mov ecx, dword [esp + 0xbc]
mov edx, dword [esp + 0x18]
push edx
mov ebx, dword [ecx + esi*4]
call fcn.004e5810
add esp, 4
cmp eax, 2
jne 0x4ea5d7
mov eax, dword [esp + 0x18]
push eax
call fcn.004e49d0
add esp, 4
cmp eax, 2
jne 0x4ea1bc
mov eax, dword [esp + 0x1b8]
test eax, eax
jne 0x4eaa37
mov edx, dword [esp + 0x18]
lea ecx, [esp + 0x48]
push 0
push ecx
push edx
mov ecx, 0x5b1514
call fcn.004d7c30
test eax, eax
je 0x4ea1ae
mov ebx, dword [esp + 0xd8]
test ebx, ebx
jne 0x4e9ff4
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.004d73d0
mov esi, eax
test esi, esi
je 0x4e9ff8
mov eax, dword [esp + 0x40]
mov ecx, dword [esi]
test eax, eax
mov dword [esp + 0x18], ecx
je 0x4e9f93
mov edx, dword [esp + 0x38]
test edx, edx
je 0x4e9f93
shr eax, 2
push ecx
push eax
push edx
call fcn.00478d00
add esp, 0xc
cmp eax, 0xffffffff
jne 0x4e9f4e
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 0x4e9f4e
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.004e89d0
add esp, 0x14
test eax, eax
je 0x4e9f4e
mov eax, dword [esp + 0x18]
lea ecx, [esp + 0x30]
push eax
call fcn.00478020
push 0
lea ecx, [esp + 0x7c]
call fcn.00478020
mov ecx, dword [esp + 0x5c]
push esi
push ecx
lea ecx, [esp + 0x5c]
call fcn.00526baa
jmp 0x4e9f4e
mov ebp, dword [esp + 0x1c]
mov edx, dword [esp + 0x48]
mov eax, dword [edx + 8]
test eax, eax
je 0x4ea1ae
lea ecx, [esp + 0x100]
push 0
push ecx
push eax
mov ecx, 0x5b14dc
call fcn.004d7c30
cmp eax, 1
jne 0x4ea1ae
test ebx, ebx
jne 0x4ea0f2
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.004d73d0
mov esi, eax
test esi, esi
je 0x4ea1ae
mov eax, dword [esi]
push eax
mov dword [esp + 0x1c], eax
call fcn.004e5810
add esp, 4
cmp eax, 2
je 0x4ea06b
cmp eax, 3
jne 0x4ea033
mov eax, dword [esp + 0x40]
test eax, eax
je 0x4ea092
mov ecx, dword [esp + 0x38]
test ecx, ecx
je 0x4ea092
mov edx, dword [esp + 0x18]
shr eax, 2
push edx
push eax
push ecx
call fcn.00478d00
add esp, 0xc
cmp eax, 0xffffffff
jne 0x4ea033
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.004e89d0
add esp, 0x14
test eax, eax
je 0x4ea033
mov edx, dword [esp + 0x18]
lea ecx, [esp + 0x30]
push edx
call fcn.00478020
push 0
lea ecx, [esp + 0x7c]
call fcn.00478020
mov eax, dword [esp + 0x5c]
push esi
push eax
lea ecx, [esp + 0x5c]
call fcn.00526baa
jmp 0x4ea033
mov eax, dword [esp + 0x100]
mov ecx, dword [eax + 0x3c]
test ecx, ecx
jne 0x4ea104
xor esi, esi
jmp 0x4ea107
mov esi, dword [eax + 0x34]
mov eax, dword [eax + 0x3c]
shr eax, 2
test eax, eax
jle 0x4ea1ae
mov edi, eax
mov edx, dword [esi]
lea ecx, [esp + 0x28]
push 0
push ecx
push edx
mov ecx, 0x5b14c0
call fcn.004d7c30
test eax, eax
je 0x4ea1a4
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.004e89d0
add esp, 0x14
test eax, eax
je 0x4ea1a4
mov ecx, dword [esp + 0x28]
mov eax, dword [ecx + 0x14]
lea ecx, [esp + 0x30]
push eax
call fcn.00478020
push 0
lea ecx, [esp + 0x7c]
call fcn.00478020
mov eax, dword [esp + 0x28]
push 0xffff
push 0
lea edx, [esp + 0x34]
mov ecx, dword [eax + 0x14]
push 0
push edx
push ecx
mov ecx, 0x5b12d0
call fcn.00454b30
mov eax, dword [esp + 0x5c]
lea edx, [esp + 0x2c]
push edx
push eax
lea ecx, [esp + 0x5c]
call fcn.00526bd6
add esi, 4
dec edi
jne 0x4ea117
mov eax, 0x10001
mov dword [esp + 0x18], eax
jmp 0x4ea5e4
mov ecx, dword [esp + 0x18]
push ecx
call fcn.004e49d0
add esp, 4
cmp eax, 1
jne 0x4ea334
mov eax, dword [esp + 0xd8]
test eax, eax
jne 0x4eaa37
mov eax, dword [esp + 0x18]
lea edx, [esp + 0xc8]
push 0
push edx
push eax
mov ecx, 0x5b1484
call fcn.004d7c30
test eax, eax
je 0x4eaa37
mov ecx, dword [esp + 0xc8]
lea ebx, [ecx + 0xc]
test ebx, ebx
je 0x4eaa37
xor ebp, ebp
mov eax, ebp
push 0
push eax
mov ecx, ebx
inc ebp
call fcn.004d73d0
mov esi, eax
test esi, esi
je 0x4eaa37
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.004e5810
add esp, 4
cmp eax, 2
je 0x4ea250
cmp eax, 3
jne 0x4ea216
mov eax, dword [esp + 0x40]
test eax, eax
je 0x4ea277
mov ecx, dword [esp + 0x38]
test ecx, ecx
je 0x4ea277
mov edx, dword [esp + 0x18]
shr eax, 2
push edx
push eax
push ecx
call fcn.00478d00
add esp, 0xc
cmp eax, 0xffffffff
jne 0x4ea216
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.004e89d0
add esp, 0x14
test eax, eax
je 0x4ea216
mov ecx, dword [esp + 0x18]
push ecx
lea ecx, [esp + 0x34]
call fcn.00478020
push 0
lea ecx, [esp + 0x7c]
call fcn.00478020
mov edx, dword [esp + 0xe0]
mov eax, dword [esp + 0x50]
push 0x59e188
lea ecx, [edx + eax*4]
lea edx, [esp + 0x11c]
push ecx
push edx
call fcn.00528194
push edi
push eax
lea eax, [esp + 0x134]
mov byte [esp + 0x1b4], 0x11
push eax
call fcn.00528194
mov ecx, dword [esp + 0x5c]
push eax
push ecx
lea ecx, [esp + 0x5c]
mov byte [esp + 0x1b4], 0x12
call fcn.00526bd6
lea ecx, [esp + 0x12c]
mov byte [esp + 0x1ac], 0x11
call fcn.00527eff
lea ecx, [esp + 0x118]
mov byte [esp + 0x1ac], 0xe
call fcn.00527eff
jmp 0x4ea216
cmp eax, 3
jne 0x4eaa37
cmp dword [esp + 0xd8], 1
jne 0x4eaa37
mov eax, dword [esp + 0x18]
lea edx, [esp + 0x68]
push 0
push edx
push eax
mov ecx, 0x5b14dc
call fcn.004d7c30
test eax, eax
je 0x4eaa37
test bl, 1
je 0x4ea482
mov ecx, dword [esp + 0x68]
mov eax, dword [ecx + 0x3c]
mov edx, dword [ecx + 0x3c]
shr eax, 2
test edx, edx
jne 0x4ea387
xor ecx, ecx
jmp 0x4ea38a
mov ecx, dword [ecx + 0x34]
test eax, eax
jle 0x4eaa37
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, 0x5b14c0
call fcn.004d7c30
test eax, eax
je 0x4ea473
mov ecx, dword [esp + 0xd4]
mov eax, dword [0x5aad24]
push eax
mov ecx, dword [ecx]
push ecx
call fcn.0050fefa
add esp, 8
test eax, eax
je 0x4ea473
mov edx, dword [esp + 0xd4]
mov eax, dword [0x5aad28]
push eax
mov ecx, dword [edx]
push ecx
call fcn.0050fefa
add esp, 8
test eax, eax
je 0x4ea473
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.004e89d0
add esp, 0x14
test eax, eax
je 0x4ea473
mov eax, dword [esp + 0xd4]
lea ecx, [esp + 0x30]
mov eax, dword [eax + 0x14]
push eax
call fcn.00478020
push 0
lea ecx, [esp + 0x7c]
call fcn.00478020
mov edx, dword [esp + 0xd4]
push 0xffff
push 0
lea ecx, [esp + 0x34]
mov eax, dword [edx + 0x14]
push 0
push ecx
push eax
mov ecx, 0x5b12d0
call fcn.00454b30
mov edx, dword [esp + 0x5c]
lea ecx, [esp + 0x2c]
push ecx
push edx
lea ecx, [esp + 0x5c]
call fcn.00526bd6
add esi, 4
dec edi
jne 0x4ea39e
jmp 0x4eaa37
lea ecx, [esp + 0x168]
call fcn.00477cf0
lea ecx, [esp + 0x140]
mov byte [esp + 0x1ac], 0x13
call fcn.00477cf0
lea ecx, [esp + 0x17c]
mov byte [esp + 0x1ac], 0x14
call fcn.00526946
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.004d33f0
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 0x4ea583
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.004e89d0
add esp, 0x14
test eax, eax
je 0x4ea57e
mov eax, dword [esi + edi*4]
lea ecx, [esp + 0x30]
push eax
call fcn.00478020
push 0
lea ecx, [esp + 0x7c]
call fcn.00478020
mov edx, dword [esi + edi*4]
push 0xffff
push 0
lea ecx, [esp + 0x34]
push 0
push ecx
push edx
mov ecx, 0x5b12d0
call fcn.00454b30
mov ecx, dword [esp + 0x5c]
lea eax, [esp + 0x2c]
push eax
push ecx
lea ecx, [esp + 0x5c]
call fcn.00526bd6
inc edi
cmp edi, ebx
jl 0x4ea50d
lea ecx, [esp + 0x17c]
mov byte [esp + 0x1ac], 0x14
call fcn.00526979
mov esi, 0x55f890
lea ecx, [esp + 0x140]
mov byte [esp + 0x1ac], 0x13
mov dword [esp + 0x140], esi
call fcn.00477ef0
lea ecx, [esp + 0x168]
mov byte [esp + 0x1ac], 0xe
mov dword [esp + 0x168], esi
call fcn.00477ef0
jmp 0x4eaa37
cmp eax, 3
jne 0x4eaa37
mov eax, dword [esp + 0x18]
mov ecx, eax
shr ecx, 0x1d
and ecx, 1
mov dword [esp + 0x6c], ecx
je 0x4ea60d
lea edx, [esp + 0x24]
and eax, 0xdfffffff
push edx
push eax
mov ecx, 0x5b1210
mov dword [esp + 0x20], eax
call fcn.004b06a0
jmp 0x4ea61d
lea ecx, [esp + 0x24]
push ecx
push eax
mov ecx, 0x5b12d0
call fcn.004543c0
mov ebx, eax
test ebx, ebx
mov dword [esp + 0x20], ebx
je 0x4eaa37
mov eax, dword [esp + 0xd8]
xor edi, edi
cmp eax, edi
jne 0x4ea8d2
cmp dword [esp + 0x1b8], edi
jne 0x4ea775
mov eax, dword [esp + 0x40]
cmp eax, edi
je 0x4ea674
mov ecx, dword [esp + 0x38]
cmp ecx, edi
je 0x4ea674
shr eax, 2
push 0x10004
push eax
push ecx
call fcn.00478d00
add esp, 0xc
cmp eax, 0xffffffff
jne 0x4ea775
mov eax, dword [ebx + 0x24]
mov esi, dword [ebx + 0x28]
cmp eax, edi
jle 0x4ea775
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.004e51e0
add esp, 0xc
test eax, eax
je 0x4ea6cd
cmp word [esi + 0xc], 0x3f5
jne 0x4ea6cd
test byte [esi + 0xe], 0x10
jne 0x4ea6cd
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.004e89d0
add esp, 0x14
test eax, eax
jne 0x4ea6df
mov ecx, dword [esp + 0x20]
inc edi
add esi, 0x14
cmp edi, dword [ecx + 0x24]
jl 0x4ea68a
jmp 0x4ea771
push 0x10004
lea ecx, [esp + 0x34]
call fcn.00478020
push 0
lea ecx, [esp + 0x7c]
call fcn.00478020
mov edx, dword [esp + 0xe0]
mov eax, dword [esp + 0x50]
push 0x59e188
lea ecx, [edx + eax*4]
lea edx, [esp + 0x138]
push ecx
push edx
call fcn.00528194
mov ecx, dword [esi]
lea edx, [esp + 0x13c]
push ecx
push eax
push edx
mov byte [esp + 0x1b8], 0x16
call fcn.00528194
push eax
mov eax, dword [esp + 0x60]
push eax
lea ecx, [esp + 0x5c]
mov byte [esp + 0x1b4], 0x17
call fcn.00526bd6
lea ecx, [esp + 0x13c]
mov byte [esp + 0x1ac], 0x16
call fcn.00527eff
lea ecx, [esp + 0x134]
mov byte [esp + 0x1ac], 0xe
call fcn.00527eff
mov ebx, dword [esp + 0x20]
mov eax, dword [ebx + 0x30]
mov edi, dword [ebx + 0x34]
test eax, eax
mov dword [esp + 0x20], 0
jle 0x4eaa37
mov ebp, dword [esp + 0x50]
test byte [edi + 0x14], 2
jne 0x4ea8b6
mov esi, dword [edi]
mov ecx, esi
shr ecx, 0x10
jne 0x4ea7c2
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 0x4ea7c2
or esi, 0x20000000
push esi
call fcn.004e5810
add esp, 4
cmp eax, 2
je 0x4ea7d9
cmp eax, 3
jne 0x4ea8b6
mov eax, dword [esp + 0x40]
test eax, eax
je 0x4ea800
mov ecx, dword [esp + 0x38]
test ecx, ecx
je 0x4ea800
shr eax, 2
push esi
push eax
push ecx
call fcn.00478d00
add esp, 0xc
cmp eax, 0xffffffff
jne 0x4ea8b6
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.004e89d0
add esp, 0x14
test eax, eax
je 0x4ea8b6
push esi
lea ecx, [esp + 0x34]
call fcn.00478020
push 0
lea ecx, [esp + 0x7c]
call fcn.00478020
mov edx, dword [esp + 0xe0]
push 0x59e188
lea ecx, [esp + 0x12c]
lea eax, [edx + ebp*4]
push eax
push ecx
call fcn.00528194
mov edx, dword [edi + 8]
mov byte [esp + 0x1ac], 0x18
push edx
push eax
lea eax, [esp + 0x140]
push eax
call fcn.00528194
mov ecx, dword [esp + 0x5c]
push eax
push ecx
lea ecx, [esp + 0x5c]
mov byte [esp + 0x1b4], 0x19
call fcn.00526bd6
lea ecx, [esp + 0x138]
mov byte [esp + 0x1ac], 0x18
call fcn.00527eff
lea ecx, [esp + 0x128]
mov byte [esp + 0x1ac], 0xe
call fcn.00527eff
mov eax, dword [esp + 0x20]
mov ecx, dword [ebx + 0x30]
inc eax
add edi, 0x1c
cmp eax, ecx
mov dword [esp + 0x20], eax
jl 0x4ea78f
jmp 0x4eaa37
mov ecx, dword [esp + 0x24]
mov dword [esp + 0x74], edi
cmp dword [esp + 0x74], 1
jne 0x4ea90b
mov edx, dword [esp + 0x20]
mov eax, dword [edx + 0x14]
test al, 0x40
je 0x4eaa37
test al, 0x10
jne 0x4eaa37
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 0x4eaa25
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.004e51e0
add esp, 0xc
cmp eax, 1
jne 0x4eaa15
test byte [esi + 0xe], 0xc
jne 0x4eaa15
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.004e89d0
add esp, 0x14
test eax, eax
je 0x4eaa15
mov esi, dword [esi + 0x10]
push esi
call fcn.004e5810
add esp, 4
cmp eax, 3
jne 0x4ea9cc
mov eax, esi
shr eax, 0x10
jne 0x4ea9cc
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 0x4ea9cc
push 0xffff
push 0
lea edx, [esp + 0x34]
push 0
push edx
push esi
push 0
mov ecx, 0x5b1210
call fcn.00469130
or esi, 0x20000000
push esi
lea ecx, [esp + 0x34]
call fcn.00478020
push 0
lea ecx, [esp + 0x7c]
call fcn.00478020
test esi, 0x20000000
jne 0x4eaa02
push 0xffff
push 0
lea eax, [esp + 0x34]
push 0
push eax
push esi
mov ecx, 0x5b12d0
call fcn.00454b30
mov edx, dword [esp + 0x5c]
lea ecx, [esp + 0x2c]
push ecx
push edx
lea ecx, [esp + 0x5c]
call fcn.00526bd6
mov eax, dword [ebx + 0xc]
mov ecx, dword [esp + 0x24]
inc edi
cmp edi, eax
jl 0x4ea922
mov eax, dword [esp + 0x74]
inc eax
cmp eax, 1
mov dword [esp + 0x74], eax
jle 0x4ea8da
mov eax, dword [esp + 0x50]
mov ecx, dword [esp + 0xfc]
inc eax
cmp eax, ecx
mov dword [esp + 0x50], eax
jl 0x4e9eae
jmp 0x4ebdff
cmp ecx, 1
jne 0x4eb228
mov ebp, dword [esp + 0x1c]
mov edi, 0x5acbb8
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.004e5430
add esp, 0x14
test eax, eax
je 0x4eaaa2
mov eax, dword [ebx + 8]
push esi
push eax
mov ecx, ebx
call fcn.00526baa
mov ecx, dword [esp + 0x1d0]
push 0xa
call fcn.00478020
add edi, 4
cmp edi, 0x5acbc0
jl 0x4eaa66
mov eax, dword [esp + 0x1b8]
test eax, eax
jne 0x4eac05
mov edi, dword [esp + 0x14]
xor esi, esi
lea ecx, [esp + 0x28]
mov eax, esi
push ecx
push eax
mov ecx, 0x5b14c0
inc esi
call fcn.004d7b90
test eax, eax
je 0x4eab96
mov edx, dword [esp + 0x28]
mov eax, dword [edx + 0xc]
test eax, eax
je 0x4eab42
push eax
call fcn.004d7300
add esp, 4
xor ecx, ecx
cmp eax, 0x40000000
sete cl
mov eax, ecx
test eax, eax
je 0x4eab42
mov ecx, dword [esp + 0x28]
mov eax, dword [esp + 0x1c8]
mov edx, dword [ecx + 0xc]
cmp edx, dword [eax + 0xc]
jne 0x4eaac2
mov eax, dword [0x5aad24]
mov ecx, dword [ecx]
push eax
push ecx
call fcn.0050fefa
add esp, 8
test eax, eax
je 0x4eaac2
mov ecx, dword [esp + 0x28]
mov eax, dword [0x5aad28]
push eax
mov ecx, dword [ecx]
push ecx
call fcn.0050fefa
add esp, 8
test eax, eax
je 0x4eaac2
mov edx, dword [esp + 0x28]
mov eax, dword [edx]
mov ecx, dword [eax - 8]
test ecx, ecx
je 0x4eaac2
mov ecx, dword [esp + 0x10]
push ebp
push eax
mov eax, dword [esp + 0x1e0]
push eax
push ecx
push edi
call fcn.004e5430
add esp, 0x14
test eax, eax
je 0x4eaac2
mov edx, dword [esp + 0x28]
mov eax, dword [ebx + 8]
push edx
push eax
mov ecx, ebx
call fcn.00526bd6
mov ecx, dword [esp + 0x1d0]
push 0
call fcn.00478020
jmp 0x4eaac2
xor esi, esi
lea ecx, [esp + 0xcc]
mov eax, esi
push ecx
push eax
mov ecx, 0x5b14f8
inc esi
call fcn.004d7b90
test eax, eax
je 0x4eac05
mov edx, dword [esp + 0xcc]
mov eax, dword [edx]
mov ecx, dword [eax - 8]
test ecx, ecx
je 0x4eab98
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.004e5430
add esp, 0x14
test eax, eax
je 0x4eab98
mov eax, dword [esp + 0xcc]
mov ecx, dword [ebx + 8]
push eax
push ecx
mov ecx, ebx
call fcn.00526bd6
mov ecx, dword [esp + 0x1d0]
push 0x10
call fcn.00478020
jmp 0x4eab98
mov eax, dword [esp + 0x1c4]
test eax, eax
je 0x4eacaa
mov ecx, dword [eax + 0x44]
test ecx, ecx
je 0x4eacaa
mov edi, dword [esp + 0x14]
xor esi, esi
lea edx, [esp + 0x68]
mov eax, esi
push edx
push eax
mov ecx, 0x5b14dc
inc esi
call fcn.004d7b90
test eax, eax
je 0x4eacaa
lea eax, [esi - 1]
mov ecx, 0x5b14dc
push eax
call fcn.004d7bd0
push eax
mov dword [esp + 0x1c], eax
call fcn.004d7300
add esp, 4
cmp eax, 0x40000000
jne 0x4eac25
mov ecx, dword [esp + 0x68]
mov eax, dword [ecx]
mov ecx, dword [eax - 8]
test ecx, ecx
je 0x4eac25
mov edx, dword [esp + 0x1d8]
push ebp
push eax
mov eax, dword [esp + 0x18]
push edx
push eax
push edi
call fcn.004e5430
add esp, 0x14
test eax, eax
je 0x4eac25
mov ecx, dword [esp + 0x68]
mov edx, dword [ebx + 8]
push ecx
push edx
mov ecx, ebx
call fcn.00526bd6
mov ecx, dword [esp + 0x1d0]
push 0x12
call fcn.00478020
jmp 0x4eac25
mov eax, dword [esp + 0x8c]
test eax, eax
je 0x4eaea0
mov eax, dword [esp + 0x1b8]
test eax, eax
jne 0x4eaea0
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 0x4ead66
mov ebx, dword [esp + 0x1cc]
mov ebp, eax
jmp 0x4eacf3
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.004e51e0
add esp, 0xc
cmp eax, 1
jne 0x4ead5e
test byte [esi + 0xe], 0xc
jne 0x4ead5e
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.004e5430
add esp, 0x14
test eax, eax
je 0x4ead5e
mov esi, dword [esi]
mov eax, dword [ebx + 8]
push esi
push eax
mov ecx, ebx
call fcn.00526baa
mov ecx, dword [esp + 0x1d0]
push 0xc
call fcn.00478020
mov eax, dword [ebp + 0xc]
inc edi
cmp edi, eax
jl 0x4eacef
mov eax, dword [esp + 0x4c]
xor ebx, ebx
mov ecx, dword [eax + 0x24]
mov esi, dword [eax + 0x28]
test ecx, ecx
jle 0x4eadef
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.004e51e0
add esp, 0xc
cmp eax, 1
jne 0x4eade2
test byte [esi + 0xe], 0x10
jne 0x4eade2
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.004e5430
add esp, 0x14
test eax, eax
je 0x4eade2
mov eax, dword [esi]
mov ecx, dword [edi + 8]
push eax
push ecx
mov ecx, edi
call fcn.00526baa
push 7
mov ecx, ebp
call fcn.00478020
mov ecx, dword [esp + 0x4c]
inc ebx
add esi, 0x14
cmp ebx, dword [ecx + 0x24]
jl 0x4ead84
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.004d73d0
mov esi, eax
test esi, esi
je 0x4eaea0
mov ecx, dword [esp + 0x8c]
lea eax, [ebx - 1]
push eax
add ecx, 0x14
call fcn.004d7e50
mov edi, eax
cmp edi, 1
jne 0x4eae3c
mov eax, dword [esp + 0x70]
test eax, eax
je 0x4eadfb
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 0x4eadfb
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.004e5430
add esp, 0x14
test eax, eax
je 0x4eadfb
mov edx, dword [ebp + 8]
push esi
push edx
mov ecx, ebp
call fcn.00526baa
mov ecx, dword [esp + 0x1d0]
xor eax, eax
test edi, edi
setne al
add eax, 5
push eax
call fcn.00478020
jmp 0x4eadfb
mov ebp, dword [esp + 0x1d0]
mov edi, dword [esp + 0x1cc]
mov ebx, 0x5acbc0
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.004e5430
add esp, 0x14
test eax, eax
je 0x4eaeee
mov eax, dword [edi + 8]
push esi
push eax
mov ecx, edi
call fcn.00526baa
push 0xb
mov ecx, ebp
call fcn.00478020
add ebx, 4
cmp ebx, 0x5acbc8
jl 0x4eaeb3
mov eax, dword [esp + 0x1b8]
test eax, eax
jne 0x4eafd5
mov eax, dword [esp + 0x98]
mov dword [esp + 0x20], 0
test eax, eax
jle 0x4eafd5
mov edx, dword [0x5b161c]
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.004e5140
add esp, 8
test eax, eax
je 0x4eafbd
mov eax, dword [esp + 0x24]
xor ebx, ebx
mov ecx, dword [eax + 0x64]
mov esi, dword [eax + 0x68]
test ecx, ecx
jle 0x4eafbd
mov edx, dword [esp + 0x44]
push edx
push esi
push eax
call fcn.004e51e0
add esp, 0xc
cmp eax, 1
jne 0x4eafb0
test byte [esi + 0xe], 0xc
jne 0x4eafb0
cmp word [esi + 0xc], 0xffff
je 0x4eafb0
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.004e5430
add esp, 0x14
test eax, eax
je 0x4eafb0
mov eax, dword [esi]
mov ecx, dword [edi + 8]
push eax
push ecx
mov ecx, edi
call fcn.00526baa
push 0xb
mov ecx, ebp
call fcn.00478020
mov eax, dword [esp + 0x24]
inc ebx
add esi, 0x24
cmp ebx, dword [eax + 0x64]
jl 0x4eaf52
mov eax, dword [esp + 0x20]
mov ecx, dword [esp + 0x98]
inc eax
cmp eax, ecx
mov dword [esp + 0x20], eax
jl 0x4eaf1f
mov eax, dword [esp + 0x1c8]
test eax, eax
je 0x4eb0b7
mov edx, eax
xor ebp, ebp
lea ebx, [edx + 0x18]
mov eax, ebp
push 0
push eax
mov ecx, ebx
inc ebp
call fcn.004d73d0
test eax, eax
je 0x4eb04b
mov edx, dword [ebx]
push eax
mov ecx, ebx
call dword [edx + 0x14]
mov esi, eax
cmp byte [esi], 0
je 0x4eafeb
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.004e5430
add esp, 0x14
test eax, eax
je 0x4eafeb
mov ecx, dword [edi + 8]
push esi
push ecx
mov ecx, edi
call fcn.00526baa
mov ecx, dword [esp + 0x1d0]
push 1
call fcn.00478020
jmp 0x4eafeb
mov edx, dword [esp + 0x1c8]
xor ebp, ebp
lea ebx, [edx + 0x38]
mov eax, ebp
push 0
push eax
mov ecx, ebx
inc ebp
call fcn.004d73d0
test eax, eax
je 0x4eb0b7
mov edx, dword [ebx]
push eax
mov ecx, ebx
call dword [edx + 0x14]
mov esi, eax
cmp byte [esi], 0
je 0x4eb057
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.004e5430
add esp, 0x14
test eax, eax
je 0x4eb057
mov ecx, dword [edi + 8]
push esi
push ecx
mov ecx, edi
call fcn.00526baa
mov ecx, dword [esp + 0x1d0]
push 3
call fcn.00478020
jmp 0x4eb057
mov ebx, dword [esp + 0x1c4]
test ebx, ebx
je 0x4eb127
xor ebp, ebp
add ebx, 0xc
mov eax, ebp
push 0
push eax
mov ecx, ebx
inc ebp
call fcn.004d73d0
test eax, eax
je 0x4eb127
mov edx, dword [ebx]
push eax
mov ecx, ebx
call dword [edx + 0x14]
mov esi, eax
cmp byte [esi], 0
je 0x4eb0c7
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.004e5430
add esp, 0x14
test eax, eax
je 0x4eb0c7
mov ecx, dword [edi + 8]
push esi
push ecx
mov ecx, edi
call fcn.00526baa
mov ecx, dword [esp + 0x1d0]
push 8
call fcn.00478020
jmp 0x4eb0c7
xor ebx, ebx
mov eax, ebx
push 0
push eax
mov ecx, 0x5b14a0
inc ebx
call fcn.004d73d0
test eax, eax
je 0x4eb193
mov edx, dword [0x5b14a0]
push eax
mov ecx, 0x5b14a0
call dword [edx + 0x14]
mov esi, eax
cmp byte [esi], 0
je 0x4eb129
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.004e5430
add esp, 0x14
test eax, eax
je 0x4eb129
mov ecx, dword [edi + 8]
push esi
push ecx
mov ecx, edi
call fcn.00526baa
mov ecx, dword [esp + 0x1d0]
push 9
call fcn.00478020
jmp 0x4eb129
mov eax, dword [esp + 0xf4]
test eax, eax
je 0x4ebdff
mov eax, dword [esp + 0x1b8]
test eax, eax
jne 0x4ebdff
xor esi, esi
lea edx, [esp + 0x48]
mov eax, esi
push edx
push eax
mov ecx, 0x5b1514
inc esi
call fcn.004d7b90
test eax, eax
je 0x4ebdff
mov eax, dword [esp + 0x48]
mov eax, dword [eax + 0xc]
mov ecx, dword [eax - 8]
test ecx, ecx
je 0x4eb1b3
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.004e5430
add esp, 0x14
test eax, eax
je 0x4eb1b3
mov edx, dword [esp + 0x48]
mov ecx, dword [esp + 0x1cc]
add edx, 0xc
mov eax, dword [ecx + 8]
push edx
push eax
call fcn.00526bd6
mov ecx, dword [esp + 0x1d0]
push 4
call fcn.00478020
jmp 0x4eb1b3
mov eax, dword [esp + 0xb0]
shr eax, 2
mov dword [esp + 0xfc], eax
je 0x4ebeb9
xor esi, esi
test eax, eax
jle 0x4ebcdb
mov ecx, dword [esp + 0xa8]
push 1
lea eax, [esp + 0x1c]
push 1
mov edx, dword [ecx + esi*4]
push eax
mov ecx, 0x5b12d0
mov dword [esp + 0x24], edx
call fcn.0044c0b0
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.004e5810
mov ecx, dword [esp + 0xf8]
add esp, 4
cmp ecx, 1
jne 0x4eb5d6
cmp eax, 2
jne 0x4eb993
mov ecx, dword [esp + 0x18]
push ecx
call fcn.004e49d0
add esp, 4
cmp eax, 2
jne 0x4eb5df
mov eax, dword [esp + 0x1b8]
test eax, eax
jne 0x4ebccb
mov eax, dword [esp + 0x18]
lea edx, [esp + 0x48]
push 0
push edx
push eax
mov ecx, 0x5b1514
call fcn.004d7c30
test eax, eax
je 0x4eb5c8
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.004d73d0
mov edi, eax
test edi, edi
je 0x4eb400
mov edx, dword [esp + 0x20]
mov eax, dword [esp + 0x48]
dec edx
push edx
lea ecx, [eax + 0x14]
call fcn.004d7e50
mov ebp, eax
cmp ebp, 1
jne 0x4eb32e
mov eax, dword [esp + 0x70]
test eax, eax
je 0x4eb2e9
mov eax, dword [esp + 0x40]
mov ecx, dword [edi]
test eax, eax
mov dword [esp + 0x18], ecx
je 0x4eb357
mov edx, dword [esp + 0x38]
test edx, edx
je 0x4eb357
shr eax, 2
push ecx
push eax
push edx
call fcn.00478d00
add esp, 0xc
cmp eax, 0xffffffff
jne 0x4eb2e9
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 0x4eb2e9
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.004e5430
add esp, 0x14
test eax, eax
je 0x4eb2e9
mov ecx, dword [esp + 0xa8]
mov edx, dword [ecx + esi*4]
lea ecx, [esp + 0x30]
push edx
call fcn.00478020
mov eax, dword [esp + 0xbc]
mov ecx, dword [eax + esi*4]
push ecx
lea ecx, [esp + 0x7c]
call fcn.00478020
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.00526bd6
mov edx, dword [ebx + 8]
push edi
push edx
mov ecx, ebx
call fcn.00526baa
mov ecx, dword [esp + 0x1d0]
xor eax, eax
test ebp, ebp
setne al
add eax, 5
push eax
call fcn.00478020
jmp 0x4eb2e9
mov ecx, dword [esp + 0x48]
mov eax, dword [ecx + 8]
test eax, eax
je 0x4eb5c8
lea edx, [esp + 0xf8]
push 0
push edx
push eax
mov ecx, 0x5b14dc
call fcn.004d7c30
cmp eax, 1
jne 0x4eb5c8
xor ebp, ebp
mov eax, ebp
push 0
push eax
mov eax, dword [esp + 0x100]
inc ebp
lea ecx, [eax + 0xc]
call fcn.004d73d0
test eax, eax
je 0x4eb4e7
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 0x4eb42f
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.004e5430
add esp, 0x14
test eax, eax
je 0x4eb42f
mov ecx, dword [esp + 0xa8]
mov edx, dword [ecx + esi*4]
lea ecx, [esp + 0x30]
push edx
call fcn.00478020
mov eax, dword [esp + 0xbc]
mov ecx, dword [eax + esi*4]
push ecx
lea ecx, [esp + 0x7c]
call fcn.00478020
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.00526bd6
mov edx, dword [ebx + 8]
push edi
push edx
mov ecx, ebx
call fcn.00526baa
mov ecx, dword [esp + 0x1d0]
push 8
call fcn.00478020
jmp 0x4eb42f
mov eax, dword [esp + 0xf8]
mov ecx, dword [eax + 0x3c]
test ecx, ecx
jne 0x4eb4f9
xor ecx, ecx
jmp 0x4eb4fc
mov ecx, dword [eax + 0x34]
mov eax, dword [eax + 0x3c]
shr eax, 2
test eax, eax
jle 0x4eb5c8
mov edi, ecx
mov ebp, eax
mov ecx, dword [edi]
lea eax, [esp + 0x28]
push 0
push eax
push ecx
mov ecx, 0x5b14c0
call fcn.004d7c30
test eax, eax
je 0x4eb5be
mov edx, dword [esp + 0x28]
mov eax, dword [edx]
mov ecx, dword [eax - 8]
test ecx, ecx
je 0x4eb5be
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.004e5430
add esp, 0x14
test eax, eax
je 0x4eb5be
mov edx, dword [esp + 0xa8]
lea ecx, [esp + 0x30]
mov eax, dword [edx + esi*4]
push eax
call fcn.00478020
mov eax, dword [esp + 0xbc]
lea ecx, [esp + 0x78]
mov eax, dword [eax + esi*4]
push eax
call fcn.00478020
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.00526bd6
mov ecx, dword [esp + 0x28]
mov eax, dword [ebx + 8]
push ecx
push eax
mov ecx, ebx
call fcn.00526bd6
mov ecx, dword [esp + 0x1d0]
push 0
call fcn.00478020
add edi, 4
dec ebp
jne 0x4eb50e
mov eax, 0x10001
mov dword [esp + 0x18], eax
jmp 0x4eb9a0
cmp eax, 2
jne 0x4eb993
mov edx, dword [esp + 0x18]
push edx
call fcn.004e49d0
add esp, 4
cmp eax, 1
jne 0x4eb6d0
mov ecx, dword [esp + 0x18]
lea eax, [esp + 0xc8]
push 0
push eax
push ecx
mov ecx, 0x5b1484
call fcn.004d7c30
test eax, eax
je 0x4ebccb
xor ebp, ebp
mov edx, dword [esp + 0xc8]
mov eax, ebp
push 0
push eax
lea ecx, [edx + 0xc]
inc ebp
call fcn.004d73d0
test eax, eax
je 0x4ebccb
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 0x4eb618
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.004e5430
add esp, 0x14
test eax, eax
je 0x4eb618
mov ecx, dword [esp + 0xa8]
mov edx, dword [ecx + esi*4]
lea ecx, [esp + 0x30]
push edx
call fcn.00478020
mov eax, dword [esp + 0xbc]
mov ecx, dword [eax + esi*4]
push ecx
lea ecx, [esp + 0x7c]
call fcn.00478020
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.00526bd6
mov edx, dword [ebx + 8]
push edi
push edx
mov ecx, ebx
call fcn.00526baa
mov ecx, dword [esp + 0x1d0]
push 0xd
call fcn.00478020
jmp 0x4eb618
mov eax, dword [esp + 0x18]
push eax
call fcn.004e49d0
add esp, 4
cmp eax, 3
jne 0x4ebccb
mov edx, dword [esp + 0x18]
lea ecx, [esp + 0x68]
push 0
push ecx
push edx
mov ecx, 0x5b14dc
call fcn.004d7c30
test eax, eax
je 0x4ebccb
test byte [esp + 0x6c], 1
je 0x4eb848
mov ecx, dword [esp + 0x68]
mov eax, dword [ecx + 0x3c]
mov edx, dword [ecx + 0x3c]
shr eax, 2
test edx, edx
jne 0x4eb724
xor ecx, ecx
jmp 0x4eb727
mov ecx, dword [ecx + 0x34]
test eax, eax
jle 0x4ebccb
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, 0x5b14c0
push edx
call fcn.004d7c30
test eax, eax
je 0x4eb829
mov ecx, dword [esp + 0xf0]
mov eax, dword [0x5aad24]
push eax
mov ecx, dword [ecx]
push ecx
call fcn.0050fefa
add esp, 8
test eax, eax
je 0x4eb829
mov edx, dword [esp + 0xf0]
mov eax, dword [0x5aad28]
push eax
mov ecx, dword [edx]
push ecx
call fcn.0050fefa
add esp, 8
test eax, eax
je 0x4eb829
mov eax, dword [esp + 0xf0]
mov edi, dword [eax]
cmp byte [edi], 0
je 0x4eb829
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.004e5430
add esp, 0x14
test eax, eax
je 0x4eb829
mov edx, dword [esp + 0xa8]
lea ecx, [esp + 0x30]
mov eax, dword [edx + esi*4]
push eax
call fcn.00478020
mov eax, dword [esp + 0xbc]
lea ecx, [esp + 0x78]
mov eax, dword [eax + esi*4]
push eax
call fcn.00478020
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.00526bd6
mov eax, dword [ebx + 8]
push edi
push eax
mov ecx, ebx
call fcn.00526baa
push 0xc
mov ecx, ebp
call fcn.00478020
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 0x4eb73e
jmp 0x4ebccb
lea ecx, [esp + 0x154]
call fcn.00477cf0
lea ecx, [esp + 0x190]
mov byte [esp + 0x1ac], 0x1a
call fcn.00526946
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.004d33f0
mov eax, dword [esp + 0x164]
mov dword [esp + 0x20], 0
shr eax, 2
test eax, eax
mov dword [esp + 0x6c], eax
jle 0x4eb95b
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 0x4eb946
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.004e5430
add esp, 0x14
test eax, eax
je 0x4eb946
mov edx, dword [esp + 0xa8]
lea ecx, [esp + 0x30]
mov eax, dword [edx + esi*4]
push eax
call fcn.00478020
mov eax, dword [esp + 0xbc]
lea ecx, [esp + 0x78]
mov eax, dword [eax + esi*4]
push eax
call fcn.00478020
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.00526bd6
mov eax, dword [ebx + 8]
push edi
push eax
mov ecx, ebx
call fcn.00526baa
push 0xc
mov ecx, ebp
call fcn.00478020
mov eax, dword [esp + 0x20]
mov ecx, dword [esp + 0x6c]
inc eax
cmp eax, ecx
mov dword [esp + 0x20], eax
jl 0x4eb8b9
lea ecx, [esp + 0x190]
mov byte [esp + 0x1ac], 0x1a
call fcn.00526979
lea ecx, [esp + 0x154]
mov byte [esp + 0x1ac], 0xe
mov dword [esp + 0x154], 0x55f890
call fcn.00477ef0
jmp 0x4ebccb
cmp eax, 3
jne 0x4ebccb
mov eax, dword [esp + 0x18]
test eax, 0x20000000
je 0x4eb9c2
lea ecx, [esp + 0x24]
and eax, 0xdfffffff
push ecx
push eax
mov ecx, 0x5b1210
mov dword [esp + 0x20], eax
call fcn.004b06a0
jmp 0x4eb9d2
lea edx, [esp + 0x24]
mov ecx, 0x5b12d0
push edx
push eax
call fcn.004543c0
mov ebp, eax
test ebp, ebp
je 0x4ebccb
mov eax, dword [esp + 0x44]
mov ecx, dword [esp + 0x24]
push eax
push ebp
push ecx
call fcn.004e5180
add esp, 0xc
test eax, eax
je 0x4ebccb
mov eax, dword [esp + 0x1b8]
test eax, eax
jne 0x4ebadc
mov eax, dword [ebp + 0x24]
mov edi, dword [ebp + 0x28]
test eax, eax
mov dword [esp + 0x20], 0
jle 0x4ebadc
mov edx, dword [esp + 0x44]
mov eax, dword [esp + 0x24]
push edx
push edi
push eax
call fcn.004e51e0
add esp, 0xc
cmp eax, 1
jne 0x4ebac5
test byte [edi + 0xe], 0x10
jne 0x4ebac5
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.004e5430
add esp, 0x14
test eax, eax
je 0x4ebac5
mov eax, dword [esp + 0xa8]
lea ecx, [esp + 0x30]
mov eax, dword [eax + esi*4]
push eax
call fcn.00478020
mov ecx, dword [esp + 0xbc]
mov eax, dword [ecx + esi*4]
lea ecx, [esp + 0x78]
push eax
call fcn.00478020
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.00526bd6
mov eax, dword [edi]
mov ecx, dword [ebx + 8]
push eax
push ecx
mov ecx, ebx
call fcn.00526baa
mov ecx, dword [esp + 0x1d0]
push 7
call fcn.00478020
mov eax, dword [esp + 0x20]
mov ecx, dword [ebp + 0x24]
inc eax
add edi, 0x14
cmp eax, ecx
mov dword [esp + 0x20], eax
jl 0x4eba1c
mov eax, dword [ebp + 0x30]
mov edi, dword [ebp + 0x34]
test eax, eax
mov dword [esp + 0x20], 0
jle 0x4ebb99
add edi, 8
test byte [edi + 0xc], 2
jne 0x4ebb82
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.004e5430
add esp, 0x14
test eax, eax
je 0x4ebb82
mov eax, dword [esp + 0xa8]
lea ecx, [esp + 0x30]
mov eax, dword [eax + esi*4]
push eax
call fcn.00478020
mov ecx, dword [esp + 0xbc]
mov eax, dword [ecx + esi*4]
lea ecx, [esp + 0x78]
push eax
call fcn.00478020
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.00526bd6
mov eax, dword [edi]
mov ecx, dword [ebx + 8]
push eax
push ecx
mov ecx, ebx
call fcn.00526baa
mov ecx, dword [esp + 0x1d0]
push 0xd
call fcn.00478020
mov eax, dword [esp + 0x20]
mov ecx, dword [ebp + 0x30]
inc eax
add edi, 0x1c
cmp eax, ecx
mov dword [esp + 0x20], eax
jl 0x4ebaf5
mov eax, dword [esp + 0x1b8]
test eax, eax
jne 0x4ebccb
mov ecx, dword [esp + 0x24]
mov dword [esp + 0x74], 0
cmp dword [esp + 0x74], 1
jne 0x4ebbdd
mov eax, dword [ebp + 0x14]
test al, 0x40
je 0x4ebccb
test al, 0x10
jne 0x4ebccb
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 0x4ebcb2
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.004e51e0
add esp, 0xc
cmp eax, 1
jne 0x4ebca2
test byte [edi + 0xe], 0xc
jne 0x4ebca2
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.004e5430
add esp, 0x14
test eax, eax
je 0x4ebca2
mov eax, dword [esp + 0xa8]
mov ecx, dword [eax + esi*4]
push ecx
lea ecx, [esp + 0x34]
call fcn.0040e8a0
push esi
lea ecx, [esp + 0xb8]
call fcn.0040e860
mov edx, dword [eax]
lea ecx, [esp + 0x78]
push edx
call fcn.0040e8a0
push esi
lea ecx, [esp + 0xe0]
call fcn.004c9360
push eax
lea ecx, [esp + 0x58]
call fcn.004c9440
mov eax, dword [edi]
mov ecx, dword [esp + 0x1cc]
push eax
call fcn.004c9330
mov ecx, dword [esp + 0x1d0]
push 0xc
call fcn.0040e8a0
mov eax, dword [ebp + 0xc]
mov ecx, dword [esp + 0x24]
inc ebx
cmp ebx, eax
jl 0x4ebbea
mov eax, dword [esp + 0x74]
mov ebx, dword [esp + 0x1cc]
inc eax
cmp eax, 1
mov dword [esp + 0x74], eax
jle 0x4ebbb4
mov eax, dword [esp + 0xfc]
inc esi
cmp esi, eax
jl 0x4eb249
lea ecx, [esp + 0x30]
call fcn.0040e8d0
mov edi, eax
test edi, edi
jle 0x4ebdb5
push 0
lea ecx, [esp + 0x34]
call fcn.0040e860
mov ecx, dword [eax]
mov esi, 1
cmp edi, esi
mov dword [esp + 0x18], ecx
jl 0x4ebdb5
push esi
lea ecx, [esp + 0x34]
call fcn.0040e860
mov edx, dword [eax]
mov eax, dword [esp + 0x18]
cmp edx, eax
jne 0x4ebd2a
inc esi
cmp esi, edi
jle 0x4ebd0c
jmp 0x4ebdb5
mov ecx, ebx
call fcn.004ec340
mov ebp, eax
xor esi, esi
test ebp, ebp
jl 0x4ebdb5
push 0x59e188
push esi
lea ecx, [esp + 0x5c]
call fcn.004c9360
push eax
lea eax, [esp + 0x12c]
push eax
call fcn.00528194
mov edi, eax
push esi
mov ecx, ebx
mov byte [esp + 0x1b0], 0x1c
call fcn.004c9360
push eax
lea ecx, [esp + 0x134]
push edi
push ecx
call fcn.0052812e
push eax
push esi
mov ecx, ebx
mov byte [esp + 0x1b4], 0x1d
call fcn.004c9500
lea ecx, [esp + 0x130]
mov byte [esp + 0x1ac], 0x1c
call fcn.00527eff
lea ecx, [esp + 0x124]
mov byte [esp + 0x1ac], 0xe
call fcn.00527eff
inc esi
cmp esi, ebp
jle 0x4ebd39
mov ecx, ebx
call fcn.004ec330
cmp eax, 1
jne 0x4ebdff
push 0
mov ecx, ebx
call fcn.004c9360
mov edx, dword [esp + 0x90]
push eax
lea ecx, [esp + 0x108]
lea eax, [edx - 1]
push eax
call fcn.004c9360
push eax
call fcn.004ec360
test al, al
je 0x4ebdff
mov ecx, ebx
call fcn.004ec350
mov ecx, dword [esp + 0x1d0]
call fcn.0040e840
mov ebp, dword [esp + 0x9c]
mov eax, dword [esp + 0x90]
inc ebp
cmp ebp, eax
mov dword [esp + 0x9c], ebp
jl 0x4e937b
lea ecx, [esp + 0x2c]
mov byte [esp + 0x1ac], 8
call fcn.00527eff
lea ecx, [esp + 0x104]
mov byte [esp + 0x1ac], 5
call fcn.00526979
lea ecx, [esp + 0xdc]
mov byte [esp + 0x1ac], 4
call fcn.00526979
lea ecx, [esp + 0x54]
mov byte [esp + 0x1ac], 3
call fcn.00526979
lea ecx, [esp + 0xb4]
mov byte [esp + 0x1ac], 2
call fcn.00408ce0
lea ecx, [esp + 0x78]
mov byte [esp + 0x1ac], 1
call fcn.00408ce0
lea ecx, [esp + 0xa0]
mov byte [esp + 0x1ac], 0
call fcn.00408ce0
lea ecx, [esp + 0x30]
mov dword [esp + 0x1ac], 0xffffffff
call fcn.00408ce0
jmp 0x4ec30c
lea ecx, [esp + 0x2c]
mov byte [esp + 0x1ac], 8
call fcn.00527eff
lea ecx, [esp + 0x104]
mov byte [esp + 0x1ac], 5
call fcn.00526979
lea ecx, [esp + 0xdc]
mov byte [esp + 0x1ac], 4
call fcn.00526979
lea ecx, [esp + 0x54]
mov byte [esp + 0x1ac], 3
call fcn.00526979
lea ecx, [esp + 0xb4]
mov byte [esp + 0x1ac], 2
mov dword [esp + 0xb4], edi
call fcn.00477ef0
lea ecx, [esp + 0x78]
mov byte [esp + 0x1ac], 1
mov dword [esp + 0x78], edi
call fcn.00477ef0
lea ecx, [esp + 0xa0]
mov byte [esp + 0x1ac], 0
mov dword [esp + 0xa0], edi
call fcn.00477ef0
mov dword [esp + 0x1ac], 0xffffffff
mov dword [esp + 0x30], edi
jmp 0x4ec303
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.004e3cc0
add esp, 8
cmp al, 0x3b
mov byte [esp + 0x14], al
mov dword [esp + 0x1c], 1
je 0x4ebf98
cmp al, 0x3a
jne 0x4ebfc9
mov ebp, dword [esp + 0xd0]
mov ecx, dword [0x5b1094]
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 [0x5b1a80]
mov ebp, dword [esp + 0x1d0]
mov edi, dword [esp + 0x1cc]
cmp ebx, 5
je 0x4ec06a
cmp ebx, 8
je 0x4ec123
push 0
push 0
push 0
mov ecx, 0x5b1210
call fcn.00460e20
mov edx, dword [0x5b1b4c]
xor ebx, ebx
lea eax, [edx - 1]
test eax, eax
mov dword [esp + 0x98], eax
jl 0x4ec27f
mov eax, dword [0x5b1b48]
mov esi, dword [eax + ebx*4]
cmp byte [esi], 0
je 0x4ec059
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.004e5430
add esp, 0x14
test eax, eax
je 0x4ec059
mov eax, dword [edi + 8]
push esi
push eax
mov ecx, edi
call fcn.00526baa
push 0x13
mov ecx, ebp
call fcn.00478020
mov eax, dword [esp + 0x98]
inc ebx
cmp ebx, eax
jle 0x4ec013
jmp 0x4ec27f
mov eax, dword [0x5aaf68]
test eax, eax
je 0x4ec0be
mov ebx, 0x5aaf68
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.004e5430
add esp, 0x14
test eax, eax
je 0x4ec0b4
mov eax, dword [edi + 8]
push esi
push eax
mov ecx, edi
call fcn.00526baa
push 0x11
mov ecx, ebp
call fcn.00478020
mov eax, dword [ebx + 0x10]
add ebx, 0x10
test eax, eax
jne 0x4ec078
xor ebx, ebx
lea ecx, [esp + 0xc8]
mov eax, ebx
push ecx
push eax
mov ecx, 0x5b1484
inc ebx
call fcn.004d7b90
test eax, eax
je 0x4ec123
mov edx, dword [esp + 0xc8]
mov esi, dword [edx]
cmp byte [esi], 0
je 0x4ec0c0
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.004e5430
add esp, 0x14
test eax, eax
je 0x4ec0c0
mov ecx, dword [edi + 8]
push esi
push ecx
mov ecx, edi
call fcn.00526baa
push 0x12
mov ecx, ebp
call fcn.00478020
jmp 0x4ec0c0
mov ebp, dword [esp + 0x1c4]
xor ebx, ebx
lea edx, [esp + 0x68]
mov eax, ebx
push edx
push eax
mov ecx, 0x5b14dc
inc ebx
call fcn.004d7b90
test eax, eax
je 0x4ec1a0
mov eax, dword [esp + 0x68]
mov ecx, dword [eax + 0x44]
test ecx, ecx
je 0x4ec12c
cmp dword [esp + 0x70], 8
jne 0x4ec159
cmp eax, ebp
je 0x4ec12c
mov esi, dword [eax]
cmp byte [esi], 0
je 0x4ec12c
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.004e5430
add esp, 0x14
test eax, eax
je 0x4ec12c
mov ecx, dword [edi + 8]
push esi
push ecx
mov ecx, edi
call fcn.00526baa
mov ecx, dword [esp + 0x1d0]
push 0x12
call fcn.00478020
jmp 0x4ec12c
cmp dword [esp + 0x70], 5
jne 0x4ec27f
mov eax, dword [0x5b163c]
mov dword [esp + 0x50], 0
shr eax, 2
test eax, eax
mov dword [esp + 0x90], eax
jle 0x4ec27f
mov ebp, dword [esp + 0x1d0]
mov eax, dword [esp + 0x50]
mov edx, dword [0x5b161c]
mov ecx, dword [esp + 0x44]
push ecx
mov eax, dword [edx + eax*4]
push eax
mov dword [esp + 0x2c], eax
call fcn.004e5140
add esp, 8
test eax, eax
je 0x4ec267
mov eax, dword [esp + 0x24]
xor ebx, ebx
mov ecx, dword [eax + 0x54]
mov esi, dword [eax + 0x58]
test ecx, ecx
jle 0x4ec267
mov edx, dword [esp + 0x44]
push edx
push esi
push eax
call fcn.004e5180
add esp, 0xc
test eax, eax
je 0x4ec25a
test byte [esi + 0x14], 3
jne 0x4ec25a
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.004e5430
add esp, 0x14
test eax, eax
je 0x4ec25a
mov eax, dword [esi]
mov ecx, dword [edi + 8]
push eax
push ecx
mov ecx, edi
call fcn.00526baa
push 2
mov ecx, ebp
call fcn.00478020
mov eax, dword [esp + 0x24]
inc ebx
add esi, 0x38
cmp ebx, dword [eax + 0x54]
jl 0x4ec204
mov eax, dword [esp + 0x50]
mov ecx, dword [esp + 0x90]
inc eax
cmp eax, ecx
mov dword [esp + 0x50], eax
jl 0x4ec1d5
lea ecx, [esp + 0xdc]
mov byte [esp + 0x1ac], 4
call fcn.00526979
lea ecx, [esp + 0x54]
mov byte [esp + 0x1ac], 3
call fcn.00526979
mov esi, 0x55f890
lea ecx, [esp + 0xb4]
mov byte [esp + 0x1ac], 2
mov dword [esp + 0xb4], esi
call fcn.00477ef0
lea ecx, [esp + 0x78]
mov byte [esp + 0x1ac], 1
mov dword [esp + 0x78], esi
call fcn.00477ef0
lea ecx, [esp + 0xa0]
mov byte [esp + 0x1ac], 0
mov dword [esp + 0xa0], esi
call fcn.00477ef0
mov dword [esp + 0x1ac], 0xffffffff
mov dword [esp + 0x30], esi
lea ecx, [esp + 0x30]
call fcn.00477ef0
mov ecx, dword [esp + 0x1a4]
pop edi
pop esi
pop ebp
pop ebx
mov dword fs:[0], ecx
add esp, 0x1a0
ret