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

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0xd4
push ebx
mov ebx, dword [ebp + 0xc]
mov ecx, dword [ebx + 4]
push esi
push edi
mov edi, eax
mov eax, dword [edi]
mov edx, dword [ecx + eax*4]
mov eax, dword [edx]
mov esi, dword [eax]
push esi
call fcn.00491541
add esp, 4
mov dword [esp + 0x34], eax
inc eax
je 0x4ac529
add eax, 7
shr eax, 3
add eax, eax
add eax, eax
add eax, eax
xor ecx, ecx
mov dword [esp + 0x38], eax
mov edx, 2
mul edx
seto cl
neg ecx
or ecx, eax
push ecx
call fcn.0048fc6b
mov ecx, dword [esp + 0x38]
add esp, 4
lea edx, [ecx + ecx + 2]
push edx
push esi
push eax
mov dword [esp + 0x3c], eax
call fcn.004911e0
add esp, 0xc
push 4
call fcn.00491689
add esp, 4
test eax, eax
je 0x4ac533
mov dword [eax], 1
mov ecx, dword [ebp + 8]
cmp dword [ecx + 0x140], 0
mov dword [esp + 0x3c], eax
je 0x4ac609
cmp dword [eax], 1
jg 0x4ac53a
mov eax, dword [esp + 0x34]
mov ecx, dword [esp + 0x30]
push eax
push ecx
call dword [fcn.00487660]
mov eax, dword [ebp + 8]
mov esi, dword [eax + 0x13c]
test esi, esi
jne 0x4ac5a1
mov esi, dword [eax + 0x134]
test esi, esi
je 0x4ac609
mov dword [esp + 0x1c], esi
lea esp, [esp]
mov edx, dword [esi + 4]
cmp edx, dword [esp + 0x34]
jne 0x4896b5
test edx, edx
je 0x4887f9
mov ecx, dword [esp + 0x30]
mov eax, dword [esi]
jmp 0x4887e0
mov si, word [eax]
cmp si, word [ecx]
jne 0x4896b1
add eax, 2
add ecx, 2
dec edx
jne 0x4887e0
mov esi, dword [esp + 0x1c]
mov eax, dword [esp + 0x3c]
dec dword [eax]
jne 0x48881b
mov ecx, dword [esp + 0x30]
push ecx
call fcn.0049155c
mov edx, dword [esp + 0x40]
add esp, 4
push edx
call fcn.0048fc76
add esp, 4
mov eax, esi
test eax, eax
je 0x4ac612
mov edx, dword [eax + 0x14]
mov ecx, dword [eax + 0x18]
mov dword [esp + 0x5c], edx
mov edx, dword [eax + 0x10]
mov eax, dword [edi]
mov dword [esp + 0x44], ecx
mov dword [esp + 0xcc], edx
mov edx, dword [ebx + 4]
mov ecx, dword [edx + eax*4]
movsx edx, word [ecx + 0xa]
mov ecx, dword [ebp + 8]
mov ecx, dword [ecx + 0x148]
inc eax
mov dword [edi], eax
mov esi, dword [ebx + 4]
mov dword [esp + 0xdc], ecx
xor ecx, ecx
mov dword [esp + 0x20], ecx
mov dword [esp + 0x28], 1
mov dword [esp + 0x2c], ecx
mov esi, dword [esi + eax*4]
cmp word [esi + 8], 0x47
mov dword [esp + 0x30], 0x498ccc
mov dword [esp + 0x34], ecx
mov dword [esp + 0x38], ecx
mov dword [esp + 0x3c], ecx
mov dword [esp + 0x60], 0x49d298
mov dword [esp + 0x64], ecx
mov dword [esp + 0x68], ecx
mov dword [esp + 0x6c], ecx
jne 0x4ac595
inc eax
mov dword [esp + 0x7c], edx
mov edx, eax
mov dword [esp + 0x18], ecx
xor esi, esi
mov dword [esp + 0x54], edx
mov dword [edi], eax
mov ecx, dword [ebx + 4]
mov ecx, dword [ecx + eax*4]
movsx ecx, word [ecx + 8]
cmp ecx, 0x47
jge 0x4888cc
inc eax
jmp 0x4888b8
sub ecx, 0x47
je 0x4ac66e
dec ecx
jne 0x4ac645
test esi, esi
jne 0x4ac667
mov dword [esp + 0x14], eax
inc eax
mov dword [edi], eax
mov eax, dword [esp + 0xcc]
cmp eax, dword [0x4ba1e8]
jg 0x4ac674
cmp eax, ecx
jle 0x4ac674
shl eax, 4
add eax, dword [0x4ba21c]
mov dword [esp + 0x50], eax
mov dword [esp + 0x70], ecx
cmp dword [esp + 0x5c], ecx
jle 0x488ae2
mov dword [esp + 0x10], 3
mov dword [esp + 0x78], ecx
lea ecx, [ecx]
cmp edx, dword [esp + 0x14]
jae 0x488ae2
mov ecx, dword [esp + 0x50]
mov eax, dword [ecx + 4]
mov ecx, dword [esp + 0x10]
inc dword [esp + 0x70]
lea eax, [eax + ecx*4]
mov ecx, dword [eax]
xor edi, edi
xor bl, bl
cmp word [ecx + 8], di
je 0x4ac67d
mov eax, dword [ebp + 0xc]
mov ecx, dword [eax + 4]
mov edx, dword [ecx + edx*4]
cmp word [edx + 8], 0x33
je 0x48896e
xor bl, bl
mov esi, dword [esp + 0x68]
mov eax, dword [esp + 0x6c]
cmp esi, eax
je 0x4896c9
push 1
call fcn.00491689
add esp, 4
test eax, eax
je 0x4ac6b5
mov byte [eax], bl
mov edx, dword [esp + 0x64]
mov dword [edx + esi*4], eax
inc esi
mov dword [esp + 0x68], esi
test bl, bl
jne 0x4ac6bc
mov eax, dword [esp + 0x2c]
test eax, eax
jne 0x4ac7c6
mov eax, dword [esp + 0x28]
cmp eax, 8
je 0x4ac7d9
cmp eax, 0xa
je 0x4ac7fe
cmp eax, 5
je 0x4ac815
cmp eax, 0xb
je 0x4ac823
cmp eax, 0xc
je 0x4ac845
mov esi, dword [esp + 0x38]
mov eax, dword [esp + 0x3c]
mov dword [esp + 0x28], 1
mov dword [esp + 0x20], 0
cmp esi, eax
je 0x489726
mov edi, dword [esp + 0x34]
push 0x10
call fcn.00491689
add esp, 4
test eax, eax
je 0x4aca2b
mov ebx, eax
mov eax, dword [esp + 0x28]
mov dword [ebx + 8], eax
mov dword [ebx + 0xc], 0
cmp eax, 1
jne 0x4ac85c
mov edx, dword [esp + 0x20]
mov dword [ebx], edx
mov eax, ebx
mov ebx, dword [esp + 0x14]
mov ecx, dword [ebp + 0xc]
mov dword [edi + esi*4], eax
inc esi
push ebx
mov dword [esp + 0x3c], esi
mov esi, dword [edi + esi*4 - 4]
push esi
lea eax, [esp + 0x5c]
push eax
push ecx
mov ecx, dword [ebp + 8]
call fcn.004897c0
test eax, eax
jne 0x4adc28
mov eax, dword [esp + 0x10]
mov edx, dword [esp + 0x50]
mov ecx, dword [edx + 4]
mov edx, dword [ecx + eax*4 + 4]
inc eax
cmp word [edx + 8], 0x41
mov dword [esp + 0x10], eax
je 0x4aca32
mov edx, dword [esp + 0x54]
cmp edx, ebx
je 0x488ae2
mov esi, dword [ebp + 0xc]
mov eax, dword [esi + 4]
mov eax, dword [eax + edx*4]
mov ecx, 0x40
cmp word [eax + 8], cx
jne 0x4aca81
lea eax, [edx + 1]
cmp eax, dword [esp + 0x14]
je 0x4aca81
mov esi, dword [esp + 0x10]
mov edx, eax
mov eax, dword [esp + 0x50]
mov dword [esp + 0x54], edx
mov eax, dword [eax + 4]
mov eax, dword [eax + esi*4]
cmp word [eax + 8], cx
jne 0x488acf
inc dword [esp + 0x10]
mov eax, dword [esp + 0x78]
inc eax
mov dword [esp + 0x78], eax
cmp eax, dword [esp + 0x5c]
jl 0x488930
mov eax, dword [esp + 0x70]
cmp eax, dword [esp + 0x44]
jl 0x4adc18
cmp eax, dword [esp + 0x5c]
jg 0x4adc18
cmp edx, dword [esp + 0x14]
jne 0x4adc18
mov ebx, dword [esp + 0xcc]
xor esi, esi
xor eax, eax
mov dword [esp + 0x10], 3
mov dword [esp + 0x1c], esi
mov dword [esp + 0x48], eax
mov dword [esp + 0x4c], ebx
cmp ebx, esi
jl 0x4aca93
cmp byte [0x4b9025], al
jne 0x4aca9c
push 0xc
call fcn.00491689
add esp, 4
cmp eax, esi
je 0x4acb3f
mov edi, eax
mov dword [edi], esi
mov edx, dword [esp + 0x4c]
mov dword [edi + 4], edx
cmp dword [esp + 0x4c], esi
jl 0x4acabd
mov eax, dword [esp + 0x48]
cmp eax, esi
jne 0x4acac5
mov dword [edi], esi
mov ecx, dword [0x4b9020]
mov dword [edi + 8], ecx
mov dword [0x4b9020], edi
mov eax, dword [esp + 0x48]
inc dword [0x4b901c]
cmp eax, esi
jne 0x4acb46
mov eax, 1
cmp dword [esp + 0x5c], eax
jl 0x489019
mov dword [esp + 0x78], eax
mov ecx, dword [esp + 0x50]
mov ecx, dword [ecx + 4]
mov esi, dword [esp + 0x10]
xor ebx, ebx
or edx, 0xffffffff
mov word [esp + 0xd8], dx
mov dword [esp + 0xbc], 0x4966cc
mov dword [esp + 0xc0], ebx
mov dword [esp + 0xc4], ebx
mov dword [esp + 0xc8], ebx
mov dword [esp + 0x7c], ebx
mov edi, dword [ecx + esi*4]
lea edx, [ecx + esi*4]
xor eax, eax
mov word [esp + 0xda], ax
mov dword [esp + 0x14], eax
cmp word [edi + 8], bx
je 0x4acb99
mov edx, dword [esp + 0x78]
cmp edx, dword [esp + 0x70]
jg 0x4acc00
mov edi, dword [esp + 0x64]
mov edx, dword [esp + 0x1c]
mov edi, dword [edi + edx*4]
or eax, 0x200
cmp byte [edi], bl
jne 0x4acbd0
mov esi, dword [esp + 0x1c]
mov edx, dword [esp + 0x34]
mov edx, dword [edx + esi*4]
mov esi, eax
mov eax, dword [esp + 0x10]
add eax, eax
add eax, eax
mov dword [esp + 0x48], eax
mov eax, dword [eax + ecx]
mov edi, dword [eax]
cmp dword [0x4b901c], ebx
je 0x4accca
mov dword [esp + 0x18], edx
cmp byte [0x4b9025], bl
jne 0x4accdd
mov ebx, dword [0x4b9020]
xor eax, eax
mov dword [esp + 0x14], ebx
cmp dword [ebx], eax
je 0x488d3c
test byte [0x4ba6d4], 1
mov byte [esp + 0x43], al
je 0x4acceb
mov dword [0x4ba6d0], eax
mov dword [0x4ba6cc], eax
mov eax, 0x4ba6b4
mov dword [esp + 0x74], eax
mov dword [esp + 0x58], eax
mov eax, dword [edi + 4]
mov ecx, dword [ebx]
mov edx, dword [ecx + 4]
test eax, eax
je 0x4acd10
test edx, edx
je 0x4acd18
cmp eax, edx
jb 0x4acd38
test eax, eax
je 0x4acd29
mov ecx, dword [ecx]
mov edx, eax
mov eax, dword [edi]
mov bx, word [eax]
cmp bx, word [ecx]
jne 0x488cda
add eax, 2
add ecx, 2
dec edx
jne 0x488cc4
jmp 0x4acd25
mov ebx, dword [esp + 0x14]
jb 0x4acd30
mov eax, 1
test eax, eax
js 0x4acd46
jle 0x4acde1
mov eax, dword [ebx]
mov eax, dword [eax + 0x1c]
test eax, eax
jne 0x4acd98
cmp byte [esp + 0x43], 0
mov eax, dword [ebx]
mov ecx, dword [eax + 0x18]
mov edx, dword [esp + 0x74]
mov dword [edx + 0x1c], ecx
mov eax, dword [ebx]
mov ecx, dword [eax + 0x1c]
mov edx, dword [esp + 0x58]
mov dword [edx + 0x18], ecx
mov eax, dword [ebx]
mov ecx, dword [0x4ba6d0]
mov dword [eax + 0x18], ecx
mov edx, dword [ebx]
mov eax, dword [0x4ba6cc]
mov dword [edx + 0x1c], eax
jne 0x4acdeb
and esi, 0xff00
push 0x20
mov dword [esp + 0x48], esi
call fcn.00491689
add esp, 4
test eax, eax
je 0x4ace0e
mov esi, eax
xor ecx, ecx
mov eax, 8
mov dword [esi + 8], eax
mov edx, 2
mul edx
seto cl
mov dword [esi + 4], 0
neg ecx
or ecx, eax
push ecx
call fcn.0048fc6b
add esp, 4
xor ecx, ecx
mov dword [esi], eax
push 4
mov word [eax], cx
call fcn.00491689
add esp, 4
test eax, eax
je 0x4ace07
mov dword [eax], 1
mov dword [esi + 0xc], eax
mov ebx, esi
cmp ebx, edi
je 0x488dde
mov eax, dword [ebx + 0xc]
cmp dword [eax], 1
jg 0x4ace15
mov esi, dword [edi + 4]
lea eax, [esi + 1]
mov dword [ebx + 4], esi
cmp dword [ebx + 8], eax
jb 0x4ace34
mov edx, dword [ebx + 4]
mov ecx, dword [edi]
lea eax, [edx + edx + 2]
mov edx, dword [ebx]
push eax
push ecx
push edx
call fcn.004911e0
add esp, 0xc
mov eax, dword [esp + 0x44]
push 0x10
mov dword [ebx + 0x10], eax
call fcn.00491689
xor ecx, ecx
add esp, 4
cmp eax, ecx
je 0x488e4b
mov edi, dword [esp + 0x18]
mov edx, dword [edi + 8]
mov esi, eax
lea eax, [edx - 1]
mov dword [esp + 0x58], esi
mov dword [esi + 8], edx
mov dword [esi + 0xc], ecx
cmp eax, 0xb
ja 0x488e47
jmp dword [eax*4 + 0x40ab84]
mov ecx, dword [esp + 0x58]
mov eax, dword [esp + 0x14]
xor edi, edi
mov dword [ebx + 0x14], ecx
mov dword [ebx + 0x1c], edi
mov dword [ebx + 0x18], edi
mov esi, dword [eax]
cmp esi, edi
je 0x489779
test byte [0x4ba6d4], 1
je 0x4acfe8
mov eax, 0x4ba6b4
mov dword [0x4ba6d0], edi
mov dword [0x4ba6cc], edi
mov dword [esp + 0x74], eax
mov dword [esp + 0x58], eax
lea ebx, [ebx]
mov eax, dword [ebx + 4]
mov edx, dword [esi + 4]
cmp eax, edi
je 0x4ad00b
cmp edx, edi
je 0x4ad013
cmp eax, edx
jb 0x4ad033
cmp eax, edi
jbe 0x4ad022
mov ecx, dword [esi]
mov edx, eax
mov eax, dword [ebx]
lea esp, [esp]
mov di, word [eax]
cmp di, word [ecx]
jne 0x488ed6
add eax, 2
add ecx, 2
dec edx
jne 0x488ec0
jmp 0x4ad020
jb 0x4ad029
mov eax, 1
xor edi, edi
cmp eax, edi
jl 0x4ad041
jle 0x488efe
lea eax, [esi + 0x1c]
mov dword [esp + 0x18], eax
mov eax, dword [eax]
cmp eax, edi
jne 0x4ad0a0
mov edx, dword [esi + 0x18]
mov eax, dword [esp + 0x58]
mov dword [eax + 0x1c], edx
mov ecx, dword [esi + 0x1c]
mov edx, dword [esp + 0x74]
mov dword [edx + 0x18], ecx
mov eax, dword [0x4ba6d0]
mov edx, dword [esi + 4]
mov dword [esi + 0x18], eax
mov ecx, dword [0x4ba6cc]
mov dword [esi + 0x1c], ecx
mov eax, dword [ebx + 4]
cmp eax, edi
je 0x4ad0ee
cmp edx, edi
je 0x4ad0f6
cmp eax, edx
jb 0x4ad116
cmp eax, edi
jbe 0x4ad105
mov ecx, dword [esi]
mov edx, eax
mov eax, dword [ebx]
nop
mov di, word [eax]
cmp di, word [ecx]
jne 0x488f66
add eax, 2
add ecx, 2
dec edx
jne 0x488f50
jmp 0x4ad103
jb 0x4ad10c
mov eax, 1
xor edi, edi
cmp eax, edi
jl 0x4ad124
jle 0x4ad135
mov ecx, dword [0x4ba6cc]
mov dword [ebx + 0x1c], ecx
mov dword [ebx + 0x18], esi
mov dword [esi + 0x1c], edi
mov eax, dword [esp + 0x14]
mov dword [eax], ebx
mov edx, dword [esp + 0x50]
mov eax, dword [edx + 4]
mov ecx, dword [esp + 0x48]
mov edx, dword [ecx + eax + 4]
cmp word [edx + 8], 0x41
je 0x4ad13c
add dword [esp + 0x10], 2
mov ax, word [esp + 0xd8]
inc dword [esp + 0x1c]
cmp ax, 0x30
jge 0x4ad170
cmp dword [esp + 0xc4], 0
mov dword [esp + 0xbc], 0x4966cc
ja 0x4ad194
mov ecx, dword [esp + 0xc0]
push ecx
mov dword [esp + 0xc8], 0
call fcn.0048fc76
mov eax, dword [esp + 0x7c]
inc eax
add esp, 4
mov dword [esp + 0x78], eax
cmp eax, dword [esp + 0x5c]
jle 0x488ba0
mov ebx, dword [esp + 0xcc]
mov esi, dword [ebp + 8]
mov edx, dword [esp + 0x70]
xor eax, eax
lea ecx, [eax + 1]
mov dword [esp + 0x80], eax
mov dword [esp + 0x8c], eax
mov byte [esp + 0x90], al
mov dword [esp + 0x94], eax
mov byte [esp + 0x98], al
mov dword [esp + 0xa0], eax
mov dword [esp + 0xac], eax
mov byte [esp + 0xb0], al
mov eax, dword [esi]
mov dword [esi + 0x148], edx
mov dword [esp + 0x88], ecx
mov dword [esp + 0xa8], ecx
mov ecx, dword [eax + 4]
cmp byte [ecx + esi + 0xd], 0
lea edi, [ecx + esi + 4]
jne 0x4ad1bd
push 0x40
call fcn.00491689
add esp, 4
test eax, eax
je 0x4ad20f
xor ecx, ecx
mov edx, 1
mov dword [eax + 8], edx
mov dword [eax + 0xc], ecx
mov dword [eax], ecx
mov byte [eax + 0x10], cl
mov dword [eax + 0x14], ecx
mov byte [eax + 0x18], cl
mov dword [eax + 0x28], edx
mov dword [eax + 0x2c], ecx
mov dword [eax + 0x20], ecx
mov byte [eax + 0x30], cl
mov ecx, dword [edi + 4]
mov dword [eax + 0x38], ecx
mov dword [edi + 4], eax
inc dword [edi]
mov edx, dword [esi + 0xf4]
lea eax, [ebx + 1]
mov ebx, dword [esi + 0x16c]
lea edi, [esi + 0x16c]
push eax
mov ecx, esi
mov dword [esp + 0x4c], edx
call fcn.00488220
cmp ebx, dword [edi]
jb 0x4ad216
mov eax, dword [esp + 0x48]
mov edi, esi
mov ecx, dword [edi]
mov dword [edi + 0xf4], eax
mov edx, dword [ecx + 4]
cmp byte [edx + edi + 0xd], 0
lea eax, [edx + edi + 4]
mov eax, dword [eax + 4]
jne 0x4ad224
cmp byte [eax + 0x10], 0
je 0x4ad449
mov ecx, dword [ebp + 0x14]
mov byte [ecx], 1
mov edx, dword [edi]
mov eax, dword [edx + 4]
cmp byte [eax + edi + 0xd], 0
lea eax, [eax + edi + 4]
jne 0x4ad22c
mov esi, dword [eax + 4]
mov ebx, dword [ebp + 0x10]
cmp ebx, esi
je 0x4891cb
mov eax, dword [ebx + 0xc]
test eax, eax
jne 0x4ad237
mov eax, dword [ebx + 8]
cmp eax, 8
je 0x4ad249
cmp eax, 0xa
je 0x4ad26a
cmp eax, 5
je 0x4ad27f
cmp eax, 0xb
je 0x4ad28b
cmp eax, 0xc
je 0x4ad2a9
mov dword [ebx + 8], 1
mov dword [ebx], 0
mov eax, dword [esi + 8]
mov dword [ebx + 8], eax
cmp eax, 4
jne 0x4ad2be
push 0x10
call fcn.00491689
add esp, 4
test eax, eax
je 0x4ad43a
mov ecx, dword [esi + 0xc]
mov edx, dword [ecx]
mov dword [eax], edx
mov edx, dword [ecx + 4]
mov dword [eax + 4], edx
mov edx, dword [ecx + 8]
mov dword [eax + 8], edx
mov ecx, dword [ecx + 0xc]
mov dword [eax + 0xc], ecx
inc dword [ecx]
mov dword [ebx + 0xc], eax
mov ecx, dword [edi]
mov edx, dword [ecx + 4]
cmp byte [edx + edi + 0xd], 0
mov eax, dword [edx + edi + 8]
lea esi, [edx + edi + 4]
jne 0x4ad441
cmp byte [eax + 0x18], 0
jne 0x4ad469
cmp byte [esi + 9], 0
jne 0x4ad47f
mov eax, dword [esi + 4]
cmp byte [eax + 0x30], 0
jne 0x4ad48a
mov ebx, dword [ebp + 8]
mov eax, dword [ebx]
mov ecx, dword [eax + 4]
cmp byte [ecx + ebx + 0xd], 0
lea edi, [ecx + ebx + 4]
jne 0x4ad4a6
cmp byte [edi + 8], 0
jne 0x4ad4c6
mov esi, dword [edi + 4]
mov edx, dword [esi + 0x38]
mov dword [esp + 0x48], edx
test esi, esi
je 0x4892f1
mov eax, dword [esi + 0x2c]
test eax, eax
jne 0x4ad4cf
mov eax, dword [esi + 0x28]
cmp eax, 8
je 0x4ad4e1
cmp eax, 0xa
je 0x4ad504
cmp eax, 5
je 0x4ad51a
cmp eax, 0xb
je 0x4ad527
cmp eax, 0xc
je 0x4ad547
mov dword [esi + 0x28], 1
mov dword [esi + 0x20], 0
mov ebx, dword [esi + 0xc]
test ebx, ebx
je 0x4892a8
mov eax, dword [ebx + 0xc]
dec dword [eax]
mov ecx, dword [ebx + 0xc]
cmp dword [ecx], 0
je 0x4ad55d
push ebx
call fcn.0048fc76
add esp, 4
mov dword [esi + 0xc], 0
mov eax, dword [esi + 8]
cmp eax, 8
je 0x4ad579
cmp eax, 0xa
je 0x4ad59a
cmp eax, 5
je 0x4ad5af
cmp eax, 0xb
je 0x4ad5bb
cmp eax, 0xc
je 0x4ad5d9
push esi
mov dword [esi + 8], 1
mov dword [esi], 0
call fcn.0048fc76
mov ebx, dword [ebp + 8]
add esp, 4
mov edx, dword [esp + 0x48]
mov dword [edi + 4], edx
mov byte [edi + 9], 0
dec dword [edi]
mov eax, dword [ebx]
mov eax, dword [eax + 4]
mov ecx, dword [eax + ebx + 8]
add eax, ebx
cmp byte [eax + 0xd], 0
jne 0x4ad5ee
mov edx, dword [esp + 0x94]
mov dword [ecx + 0x14], edx
cmp byte [eax + 0xd], 0
mov eax, dword [eax + 8]
jne 0x4ad5f6
mov byte [eax + 0x18], 0
mov ecx, dword [ebx]
mov eax, dword [ecx + 4]
add eax, ebx
cmp byte [eax + 0xd], 0
mov dword [esp + 0x48], eax
jne 0x4ad5fe
mov eax, dword [eax + 8]
lea ebx, [eax + 0x20]
lea eax, [esp + 0xa0]
cmp ebx, eax
je 0x4893b1
mov eax, dword [ebx + 0xc]
test eax, eax
jne 0x4ad609
mov eax, dword [ebx + 8]
cmp eax, 8
je 0x4ad61b
cmp eax, 0xa
je 0x4ad63c
cmp eax, 5
je 0x4ad651
cmp eax, 0xb
je 0x4ad65d
cmp eax, 0xc
je 0x4ad67b
mov eax, dword [esp + 0xa8]
mov dword [ebx], 0
mov dword [ebx + 8], eax
cmp eax, 1
jne 0x4ad690
mov eax, dword [esp + 0xa0]
mov dword [ebx], eax
mov edi, dword [esp + 0x68]
mov eax, dword [esp + 0x48]
cmp byte [eax + 0xd], 0
jne 0x4ad873
mov eax, dword [eax + 8]
mov byte [eax + 0x30], 0
cmp byte [0x4b9025], 0
jne 0x4ad87e
mov ecx, dword [0x4b9020]
cmp byte [0x4b9024], 0
jne 0x4ad8a0
mov esi, dword [ecx]
mov edx, dword [ecx + 8]
mov dword [esp + 0x44], edx
mov dword [esp + 0x48], ecx
test esi, esi
je 0x4894c5
mov eax, dword [esi + 0x18]
mov ebx, ecx
test eax, eax
je 0x48940e
push eax
call fcn.0048a400
mov eax, dword [esi + 0x1c]
test eax, eax
jne 0x4ad8b0
cmp byte [esi + 0x10], 0
jne 0x489494
mov ebx, dword [esi + 0x14]
test ebx, ebx
je 0x489494
mov edi, dword [ebx + 0xc]
test edi, edi
je 0x48944e
mov eax, dword [edi + 0xc]
dec dword [eax]
mov eax, dword [edi + 0xc]
cmp dword [eax], 0
je 0x4ad8bd
push edi
call fcn.0048fc76
add esp, 4
mov dword [ebx + 0xc], 0
mov eax, dword [ebx + 8]
cmp eax, 8
je 0x4ad8d9
cmp eax, 0xa
je 0x4ad8fa
cmp eax, 5
je 0x4ad90f
cmp eax, 0xb
je 0x4ad91b
cmp eax, 0xc
je 0x4ad939
push ebx
mov dword [ebx + 8], 1
mov dword [ebx], 0
call fcn.0048fc76
add esp, 4
mov eax, dword [esi + 0xc]
dec dword [eax]
mov ecx, dword [esi + 0xc]
cmp dword [ecx], 0
jne 0x4894b8
mov edx, dword [esi]
push edx
call fcn.0049155c
mov eax, dword [esi + 0xc]
add esp, 4
push eax
call fcn.0048fc76
add esp, 4
push esi
call fcn.0048fc76
mov edi, dword [esp + 0x6c]
add esp, 4
mov ecx, dword [esp + 0x48]
mov ebx, dword [esp + 0x64]
push ecx
call fcn.0048fc76
mov edx, dword [esp + 0x48]
add esp, 4
mov dword [0x4b9020], edx
mov byte [0x4b9025], 0
mov eax, dword [esp + 0xdc]
dec dword [0x4b901c]
mov ecx, dword [ebp + 8]
mov dword [ecx + 0x148], eax
mov eax, dword [esp + 0xac]
test eax, eax
jne 0x4ad94e
mov eax, dword [esp + 0xa8]
cmp eax, 8
je 0x4ad964
cmp eax, 0xa
je 0x4ad988
cmp eax, 5
je 0x4ad9a2
cmp eax, 0xb
je 0x4ad9b3
cmp eax, 0xc
je 0x4ad9d4
mov eax, dword [esp + 0x8c]
mov esi, dword [esp + 0x88]
xor ecx, ecx
mov edx, 1
mov dword [esp + 0xa8], edx
mov dword [esp + 0xa0], ecx
cmp eax, ecx
jne 0x4ad9ee
cmp esi, 8
je 0x4ada0b
cmp esi, 0xa
je 0x4ada3b
cmp esi, 5
je 0x4ada61
cmp esi, 0xb
je 0x4ada79
cmp esi, 0xc
je 0x4adaa1
mov eax, dword [esp + 0x2c]
cmp eax, ecx
jne 0x4adac7
mov eax, dword [esp + 0x28]
cmp eax, 8
je 0x4adae1
cmp eax, 0xa
je 0x4adb0d
cmp eax, 5
je 0x4adb2b
cmp eax, 0xb
je 0x4adb40
cmp eax, 0xc
je 0x4adb69
mov dword [esp + 0x28], edx
mov dword [esp + 0x20], ecx
cmp edi, ecx
jbe 0x4895f4
xor esi, esi
mov ecx, dword [ebx + esi*4]
push ecx
call fcn.0048fc76
inc esi
add esp, 4
cmp esi, edi
jb 0x4895e3
mov edx, dword [esp + 0x64]
push edx
call fcn.0048fc76
add esp, 4
cmp dword [esp + 0x38], 0
jbe 0x489690
xor ebx, ebx
mov edi, edi
mov eax, dword [esp + 0x34]
mov esi, dword [eax + ebx*4]
test esi, esi
je 0x489689
mov edi, dword [esi + 0xc]
test edi, edi
je 0x489643
mov eax, dword [edi + 0xc]
dec dword [eax]
mov ecx, dword [edi + 0xc]
cmp dword [ecx], 0
je 0x4adb87
push edi
call fcn.0048fc76
add esp, 4
mov dword [esi + 0xc], 0
mov eax, dword [esi + 8]
cmp eax, 8
je 0x4adba3
cmp eax, 0xa
je 0x4adbc4
cmp eax, 5
je 0x4adbd9
cmp eax, 0xb
je 0x4adbe5
cmp eax, 0xc
je 0x4adc03
push esi
mov dword [esi + 8], 1
mov dword [esi], 0
call fcn.0048fc76
add esp, 4
inc ebx
cmp ebx, dword [esp + 0x38]
jb 0x489610
mov edx, dword [esp + 0x34]
push edx
call fcn.0048fc76
add esp, 4
xor eax, eax
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0x10
mov esi, dword [esp + 0x1c]
mov esi, dword [esi + 0x20]
mov dword [esp + 0x1c], esi
test esi, esi
jne 0x4887c0
jmp 0x4ac609
add eax, eax
cmp eax, 4
jae 0x4896d5
mov eax, 4
xor ecx, ecx
mov dword [esp + 0x6c], eax
mov edx, 4
mul edx
seto cl
neg ecx
or ecx, eax
push ecx
call fcn.00491689
mov edx, dword [esp + 0x68]
add esp, 4
lea ecx, [esi*4]
push ecx
push edx
push eax
mov dword [esp + 0x54], eax
call fcn.004911e0
mov eax, dword [esp + 0x70]
add esp, 0xc
push eax
call fcn.0048fc76
mov ecx, dword [esp + 0x4c]
add esp, 4
mov dword [esp + 0x64], ecx
jmp 0x48897e
add eax, eax
cmp eax, 4
jae 0x489732
mov eax, 4
xor ecx, ecx
mov dword [esp + 0x3c], eax
mov edx, 4
mul edx
seto cl
neg ecx
or ecx, eax
push ecx
call fcn.00491689
mov ebx, dword [esp + 0x38]
mov edi, eax
add esp, 4
lea eax, [esi*4]
push eax
push ebx
push edi
call fcn.004911e0
add esp, 0xc
push ebx
call fcn.0048fc76
add esp, 4
mov dword [esp + 0x34], edi
jmp 0x488a03
mov dword [ebx + 0x1c], edi
mov dword [ebx + 0x18], edi
jmp 0x488f94
mov eax, 8
jmp 0x488720
xor eax, eax
jmp 0x48876c
mov eax, dword [esp + 0x3c]
dec dword [eax]
lea esi, [esp + 0x30]
call fcn.00480100
mov edx, dword [esp + 0x34]
inc edx
push edx
call fcn.004c9654
xor ecx, ecx
mov esi, eax
mov edx, 2
mul edx
seto cl
mov dword [esp + 0x38], esi
neg ecx
or ecx, eax
push ecx
call fcn.0048fc6b
mov edx, dword [esp + 0x34]
mov esi, eax
mov eax, dword [esp + 0x38]
add esp, 4
lea ecx, [eax + eax + 2]
push ecx
push edx
push esi
call fcn.004911e0
add esp, 0xc
mov dword [esp + 0x30], esi
jmp 0x488789
push edx
mov edx, dword [ebp + 8]
push 0x6f
push edx
jmp 0x4adc23
mov eax, dword [eax + 0x140]
dec eax
js 0x4ac609
mov dword [esp + 0x5c], 0
mov dword [esp + 0x70], eax
mov edx, dword [esp + 0x5c]
mov eax, dword [esp + 0x70]
lea eax, [eax + edx]
cdq
sub eax, edx
sar eax, 1
mov ecx, dword [esi + eax*4]
mov dword [esp + 0x1c], eax
lea eax, [esp + 0x30]
call fcn.0048ac90
test eax, eax
jns 0x4ac5f0
mov eax, dword [esp + 0x1c]
dec eax
mov dword [esp + 0x70], eax
jmp 0x4ac5ff
jle 0x4ac626
mov ecx, dword [esp + 0x1c]
inc ecx
mov dword [esp + 0x5c], ecx
mov edx, dword [esp + 0x70]
cmp dword [esp + 0x5c], edx
jle 0x4ac5ba
lea ecx, [esp + 0x30]
call fcn.00480fb0
mov eax, dword [ebp + 0x10]
mov ecx, dword [ebp + 8]
push eax
push edi
push ebx
push ecx
call 0x501f1f
jmp 0x48969f
mov eax, dword [esp + 0x70]
cmp dword [esp + 0x5c], eax
jg 0x4ac609
mov ecx, dword [esp + 0x1c]
mov esi, dword [esi + ecx*4]
lea ecx, [esp + 0x30]
call fcn.00480fb0
jmp 0x48881b
sub ecx, 0x37
jne 0x4888c9
mov edx, eax
mov eax, dword [ebx + 4]
mov ecx, dword [eax + edx*4 - 4]
movsx edx, word [ecx + 0xa]
mov eax, dword [ebp + 8]
push edx
push 0x6f
push eax
jmp 0x4adc23
dec esi
inc eax
jmp 0x4888b8
inc esi
jmp 0x4888c9
mov dword [esp + 0x50], ecx
jmp 0x488913
mov ecx, dword [eax]
mov ecx, dword [ecx]
cmp ecx, 0x24
jne 0x4ac691
mov bl, 1
jmp 0x4ac69f
cmp ecx, 0x1e
jne 0x4aca3c
mov edi, 0x100
mov ecx, dword [eax + 4]
inc dword [esp + 0x10]
add eax, 4
cmp word [ecx + 8], 0
je 0x4ac67d
jmp 0x48895c
xor eax, eax
jmp 0x488992
mov eax, dword [ebp + 0xc]
mov edx, dword [eax + 4]
mov ecx, dword [esp + 0x54]
mov eax, dword [edx + ecx*4]
cmp word [eax + 8], 0x33
jne 0x4aca48
mov esi, dword [eax]
lea ecx, [esp + 0x18]
push ecx
lea edx, [esp + 0x20]
push edx
xor ecx, ecx
call fcn.0048b290
test al, al
je 0x4aca64
test dword [esp + 0x18], 0x100
je 0x4ac729
test edi, 0x100
jne 0x4ac729
mov ecx, dword [ebp + 0xc]
mov edx, dword [ecx + 4]
mov eax, dword [esp + 0x54]
mov ecx, dword [edx + eax*4]
movsx edx, word [ecx + 0xa]
mov eax, dword [ebp + 8]
push edx
push 0xb0
push eax
jmp 0x4adc23
mov eax, dword [esp + 0x1c]
mov edi, 1
add dword [esp + 0x54], edi
add dword [esp + 0x10], edi
cmp dword [eax + 8], 5
jne 0x4ac79a
mov ecx, dword [ebp + 0xc]
mov edx, dword [ecx + 4]
mov eax, dword [esp + 0x54]
mov edx, dword [edx + eax*4]
cmp word [edx + 8], 0x4e
jne 0x4ac79a
mov edx, dword [ebp + 8]
push 0
lea eax, [esp + 0x20]
push eax
push edx
lea eax, [esp + 0x60]
call fcn.0048b4b0
test eax, eax
je 0x4ac79a
lea esi, [esp + 0x20]
call fcn.00487f70
lea ecx, [esp + 0x60]
call fcn.004c4c89
lea ecx, [esp + 0x30]
call fcn.0048fa60
mov eax, edi
jmp 0x48969f
lea esi, [esp + 0x20]
call fcn.00487f70
mov eax, dword [esp + 0x1c]
push esi
lea esi, [esp + 0x34]
mov dword [esp + 0x2c], 6
mov dword [esp + 0x24], eax
call fcn.0048aa10
mov ebx, dword [esp + 0x14]
jmp 0x488a84
push eax
call fcn.004c599d
mov dword [esp + 0x2c], 0
jmp 0x4889b2
mov eax, dword [esp + 0x20]
test eax, eax
je 0x4889e3
push eax
call dword [0x48744c]
mov edx, dword [esp + 0x20]
push edx
call fcn.0048fc76
add esp, 4
jmp 0x4889e3
mov eax, dword [esp + 0x20]
test eax, eax
je 0x4889e3
push eax
call fcn.004c7180
jmp 0x4889e3
lea eax, [esp + 0x20]
call fcn.0048d350
jmp 0x4889e3
mov eax, dword [esp + 0x20]
mov ecx, dword [eax + 4]
push ecx
call fcn.0048fc76
mov edx, dword [esp + 0x24]
add esp, 4
push edx
call fcn.0048fc76
add esp, 4
jmp 0x4889e3
mov eax, dword [esp + 0x20]
test eax, eax
je 0x4889e3
push eax
call 0x4ce3d6
jmp 0x4889e3
dec eax
cmp eax, 0xb
ja 0x4ac90f
jmp dword [eax*4 + 0x42f04d]
mov edi, dword [esp + 0x34]
mov esi, dword [esp + 0x38]
jmp 0x488a38
xor eax, eax
jmp 0x488a3a
add dword [esp + 0x10], 2
jmp 0x488a84
push 0xffffffffffffffff
push 0x91
jmp 0x4adc1f
mov edx, dword [ebp + 0xc]
mov eax, dword [edx + 4]
mov ecx, dword [eax + ecx*4]
movsx edx, word [ecx + 0xa]
mov eax, dword [ebp + 8]
push edx
push 0x91
push eax
jmp 0x4adc23
mov ecx, dword [ebp + 0xc]
mov edx, dword [ecx + 4]
mov eax, dword [esp + 0x54]
mov ecx, dword [edx + eax*4]
movsx edx, word [ecx + 0xa]
mov eax, dword [ebp + 8]
push edx
push 0x79
push eax
jmp 0x4adc23
mov ecx, dword [esi + 4]
mov edx, dword [ecx + edx*4]
movsx eax, word [edx + 0xa]
push eax
push 0x6f
jmp 0x4adc1f
mov dword [esp + 0x4c], esi
jmp 0x488b2b
mov edx, dword [0x4b9020]
mov dword [edx], eax
mov eax, dword [esp + 0x4c]
mov ecx, dword [0x4b9020]
mov dword [ecx + 4], eax
mov byte [0x4b9025], 0
jmp 0x488b7b
mov dword [edi + 4], esi
jmp 0x488b5e
push 0x20
mov dword [esp + 0x1c], eax
call fcn.00491689
add esp, 4
cmp eax, esi
je 0x4acae6
push eax
call 0x4ce419
jmp 0x4acae8
xor eax, eax
mov ecx, dword [esp + 0x18]
push ecx
mov esi, eax
mov dword [edi], eax
call fcn.0048d180
mov edx, dword [edi]
mov esi, dword [esp + 0x18]
mov eax, dword [esi + 0x10]
mov dword [edx + 0x10], eax
mov ecx, dword [edi]
mov edx, dword [esi + 0x14]
mov dword [ecx + 0x14], edx
mov ecx, dword [edi]
xor eax, eax
mov dword [ecx + 0x18], eax
mov edx, dword [edi]
mov dword [edx + 0x1c], eax
mov eax, dword [esi + 0x18]
mov ecx, dword [edi]
add ecx, 0x18
push eax
push ecx
mov ecx, edi
call 0x4d6bc1
mov edx, dword [esi + 0x1c]
mov eax, dword [edi]
push edx
add eax, 0x1c
push eax
mov ecx, edi
call 0x4d6bc1
xor esi, esi
jmp 0x488b6c
xor edi, edi
jmp 0x488b6c
mov edi, eax
mov eax, dword [eax + 0x18]
cmp eax, esi
je 0x4acb5d
push eax
lea ecx, [esp + 0x4c]
call fcn.0048a400
mov eax, dword [edi + 0x1c]
cmp eax, esi
je 0x4acb72
push eax
lea ecx, [esp + 0x4c]
call fcn.0048a400
cmp byte [edi + 0x10], 0
jne 0x4acb8e
mov ecx, dword [edi + 0x14]
cmp ecx, esi
je 0x4acb8e
push 1
call fcn.0048d2a0
push edi
call fcn.004c599d
jmp 0x488b8d
mov edi, dword [edx]
mov edi, dword [edi]
cmp edi, 0x24
je 0x4acbbb
cmp edi, 0x1e
jne 0x4acbbf
mov dword [esp + 0x14], 0x100
mov eax, dword [esp + 0x14]
inc esi
add edx, 4
mov edi, dword [edx]
cmp word [edi + 8], bx
je 0x4acb99
mov dword [esp + 0x10], esi
jmp 0x488bfa
mov edi, dword [esp + 0x34]
mov edx, dword [edi + edx*4]
mov ecx, dword [ecx + esi*4]
push 1
push eax
push edx
call fcn.004b4fd2
push eax
mov eax, dword [ecx]
push eax
call 0x4e5a8a
test al, al
je 0x4ad1d7
add esi, 2
mov dword [esp + 0x10], esi
jmp 0x488fb5
lea ebx, [esp + 0xbc]
call fcn.0048c510
mov ecx, dword [esp + 0x50]
mov edx, dword [ecx + 4]
mov dword [esp + 0x7c], 0
mov eax, dword [edx + esi*4 + 8]
movzx ecx, word [eax + 8]
cmp cx, 0x4a
je 0x4acc37
cmp cx, 0x49
jne 0x4acc52
lea edi, [esp + 0xbc]
call fcn.00481780
mov eax, dword [esp + 0x50]
mov ecx, dword [eax + 4]
mov edx, dword [esp + 0x10]
mov eax, dword [ecx + edx*4 + 0xc]
lea edi, [esp + 0xbc]
call fcn.00481780
mov edi, 0x7f
lea esi, [esp + 0xd0]
call fcn.00481710
mov eax, esi
lea edi, [esp + 0xbc]
call fcn.00481780
push 0xffffffffffffffff
lea eax, [esp + 0x24]
push eax
lea ecx, [esp + 0x84]
push ecx
mov ecx, dword [ebp + 8]
push edi
call fcn.004897c0
mov eax, dword [esp + 0x10]
mov edx, dword [esp + 0x50]
mov edx, dword [edx + 4]
mov ecx, dword [esp + 0x14]
add eax, eax
add eax, eax
mov esi, dword [eax + edx]
mov esi, dword [esi]
mov dword [esp + 0x48], eax
or ecx, 0x200
mov eax, 1
lea edx, [esp + 0x20]
call fcn.004806e0
jmp 0x488f96
push esi
mov eax, edi
push edx
mov edi, 0x4b900c
call fcn.00482e40
jmp 0x488f96
mov ecx, dword [0x4b9020]
mov ebx, dword [ecx + 8]
jmp 0x488c60
or dword [0x4ba6d4], 1
push 0x4ba6b4
call 0x4ce419
push 0x429ffd
call fcn.0049182c
add esp, 4
xor eax, eax
jmp 0x488c7f
test edx, edx
jne 0x4acd46
test eax, eax
jne 0x488cf7
jmp 0x488cae
mov ebx, dword [esp + 0x14]
xor eax, eax
jmp 0x488ce9
or eax, 0xffffffff
jmp 0x488ce9
mov ecx, dword [ecx]
mov eax, dword [edi]
call fcn.0048c170
jmp 0x488ce9
mov eax, dword [ebx]
mov eax, dword [eax + 0x18]
test eax, eax
je 0x488d04
push eax
push edi
call fcn.004c6127
add esp, 8
test al, al
je 0x4acd83
mov eax, dword [ebx]
mov eax, dword [eax + 0x18]
mov ecx, dword [ebx]
mov edx, dword [eax + 0x1c]
mov dword [ecx + 0x18], edx
mov ecx, dword [ebx]
mov dword [eax + 0x1c], ecx
mov dword [ebx], eax
cmp dword [eax + 0x18], 0
je 0x488d04
mov edx, dword [ebx]
mov eax, dword [esp + 0x58]
mov dword [eax + 0x18], edx
mov eax, dword [ebx]
mov ecx, dword [eax + 0x18]
mov dword [ebx], ecx
jmp 0x488c92
push edi
push eax
call fcn.004c6127
add esp, 8
test al, al
je 0x4acdc8
mov eax, dword [ebx]
mov eax, dword [eax + 0x1c]
mov edx, dword [ebx]
mov ecx, dword [eax + 0x18]
mov dword [edx + 0x1c], ecx
mov edx, dword [ebx]
mov dword [eax + 0x18], edx
mov dword [ebx], eax
cmp dword [eax + 0x1c], 0
je 0x488d04
mov eax, dword [ebx]
mov ecx, dword [esp + 0x74]
mov dword [ecx + 0x1c], eax
mov eax, dword [ebx]
mov edx, dword [eax + 0x1c]
mov dword [esp + 0x74], eax
mov dword [ebx], edx
jmp 0x488c96
mov byte [esp + 0x43], 1
jmp 0x488d04
mov ebx, dword [ebx]
test ebx, ebx
je 0x488d3c
mov ecx, dword [esp + 0x18]
mov ebx, dword [ebx + 0x14]
push ecx
call fcn.00487eb0
jmp 0x488f96
xor eax, eax
jmp 0x488da1
xor ebx, ebx
jmp 0x488da6
dec dword [eax]
mov edx, dword [edi + 4]
mov dword [ebx + 4], edx
mov eax, dword [edi + 8]
mov dword [ebx + 8], eax
mov ecx, dword [edi]
mov dword [ebx], ecx
mov edi, dword [edi + 0xc]
mov dword [ebx + 0xc], edi
inc dword [edi]
jmp 0x488dde
push eax
call fcn.004c9654
mov dword [ebx + 8], eax
mov eax, dword [ebx]
test eax, eax
je 0x4ace50
push eax
call fcn.0049155c
add esp, 4
mov eax, dword [ebx + 8]
xor ecx, ecx
mov edx, 2
mul edx
seto cl
neg ecx
or ecx, eax
push ecx
call fcn.0048fc6b
add esp, 4
xor ecx, ecx
mov dword [ebx], eax
mov word [eax + esi*2], cx
jmp 0x488dc8
or dword [0x4ba6d4], 1
push 0x4ba6b4
call 0x4ce419
push 0x429ffd
call fcn.0049182c
add esp, 4
jmp 0x488e71
cmp edx, edi
jne 0x4ad041
cmp eax, edi
jne 0x488eed
jmp 0x488ea6
xor edi, edi
xor eax, eax
jmp 0x488ee3
or eax, 0xffffffff
xor edi, edi
jmp 0x488ee3
mov ecx, dword [esi]
mov eax, dword [ebx]
call fcn.0048c170
jmp 0x488ee3
lea eax, [esi + 0x18]
mov dword [esp + 0x18], eax
mov eax, dword [eax]
cmp eax, edi
je 0x488efe
push eax
push ebx
mov dword [esp + 0x4c], eax
call fcn.004c6127
add esp, 8
test al, al
je 0x4ad08a
mov eax, dword [esp + 0x44]
mov ecx, dword [eax + 0x1c]
mov edx, dword [esp + 0x18]
mov dword [edx], ecx
mov dword [eax + 0x1c], esi
mov esi, eax
cmp dword [eax + 0x18], edi
je 0x488efe
add eax, 0x18
mov dword [esp + 0x18], eax
mov eax, dword [esp + 0x74]
mov ecx, dword [esp + 0x18]
mov dword [eax + 0x18], esi
mov dword [esp + 0x74], esi
mov esi, dword [ecx]
jmp 0x488e90
push ebx
push eax
mov dword [esp + 0x4c], eax
call fcn.004c6127
add esp, 8
test al, al
je 0x4ad0d8
mov eax, dword [esp + 0x44]
mov ecx, dword [eax + 0x18]
mov edx, dword [esp + 0x18]
mov dword [edx], ecx
mov dword [eax + 0x18], esi
mov esi, eax
cmp dword [eax + 0x1c], edi
je 0x488efe
add eax, 0x1c
mov dword [esp + 0x18], eax
mov eax, dword [esp + 0x58]
mov ecx, dword [esp + 0x18]
mov dword [eax + 0x1c], esi
mov dword [esp + 0x58], esi
mov esi, dword [ecx]
jmp 0x488e90
cmp edx, edi
jne 0x4ad124
cmp eax, edi
jne 0x488f81
jmp 0x488f39
xor edi, edi
xor eax, eax
jmp 0x488f73
or eax, 0xffffffff
xor edi, edi
jmp 0x488f73
mov ecx, dword [esi]
mov eax, dword [ebx]
call fcn.0048c170
jmp 0x488f73
mov eax, dword [esi + 0x18]
mov dword [ebx + 0x18], eax
mov dword [ebx + 0x1c], esi
mov dword [esi + 0x18], edi
jmp 0x488f90
mov ebx, esi
jmp 0x488f90
mov ecx, dword [esp + 0x10]
mov edx, dword [eax + ecx*4 + 8]
movzx eax, word [edx + 8]
cmp ax, 0x4a
je 0x4ad166
cmp ax, 0x49
je 0x4ad166
add dword [esp + 0x10], 4
jmp 0x488fb5
add dword [esp + 0x10], 5
jmp 0x488fb5
cmp ax, 0x3f
jg 0x488fcb
mov eax, dword [esp + 0xd0]
test eax, eax
je 0x488fcb
push eax
call fcn.004c599d
jmp 0x488fcb
xor esi, esi
mov eax, dword [esp + 0xc0]
mov eax, dword [eax + esi*4]
test eax, eax
je 0x4ad1ae
push eax
call 0x4cf94e
inc esi
cmp esi, dword [esp + 0xc4]
jb 0x4ad196
jmp 0x488fe4
mov eax, dword [edi + 4]
lea edx, [esp + 0x80]
push edx
push eax
call 0x4f777e
mov byte [edi + 9], 0
jmp 0x4890c4
mov edx, dword [esp + 0x50]
mov eax, dword [edx + 4]
mov ecx, dword [eax + esi*4]
movsx edx, word [ecx + 0xa]
mov eax, dword [ebp + 8]
push edx
push 0x79
push eax
call 0x4e49f6
lea ecx, [esp + 0xd0]
push ecx
call 0x4ce47b
lea ecx, [esp + 0xbc]
call fcn.0048da70
jmp 0x4adc28
xor eax, eax
jmp 0x4890bb
call fcn.0048b760
cmp ebx, dword [edi]
jb 0x4ad216
jmp 0x4890ef
mov eax, dword [eax + 0x38]
jmp 0x489112
mov ecx, dword [eax + 4]
mov esi, dword [ecx + 0x38]
jmp 0x489139
push eax
call fcn.004c599d
mov dword [ebx + 0xc], 0
jmp 0x48914f
mov ecx, dword [ebx]
test ecx, ecx
je 0x48915b
push ecx
call dword [0x48744c]
mov edx, dword [ebx]
push edx
call fcn.0048fc76
add esp, 4
jmp 0x48917f
mov eax, dword [ebx]
test eax, eax
je 0x48917f
push eax
call fcn.004c7180
jmp 0x48917f
mov eax, ebx
call fcn.0048d350
jmp 0x48917f
mov eax, dword [ebx]
mov ecx, dword [eax + 4]
push ecx
call fcn.0048fc76
mov edx, dword [ebx]
add esp, 4
push edx
call fcn.0048fc76
add esp, 4
jmp 0x48917f
mov eax, dword [ebx]
test eax, eax
je 0x48917f
push eax
call 0x4ce3d6
jmp 0x48917f
dec eax
cmp eax, 0xb
ja 0x4891cb
jmp dword [eax*4 + 0x42f07d]
xor eax, eax
jmp 0x4891c8
mov eax, dword [eax + 0x38]
jmp 0x4891e3
mov eax, dword [ebp + 0x14]
mov esi, dword [ebp + 0x10]
mov byte [eax], 0
call fcn.00487f70
mov dword [esi + 8], 1
mov dword [esi], 0
jmp 0x4891cb
mov eax, esi
call fcn.00482cf0
mov ecx, dword [eax + 0x14]
mov dword [esp + 0x94], ecx
jmp 0x4891ed
mov edx, dword [esi + 4]
mov eax, dword [edx + 0x38]
jmp 0x4891fa
mov eax, esi
call fcn.00482cf0
add eax, 0x20
push eax
lea ebx, [esp + 0xa4]
call fcn.00487eb0
jmp 0x489204
mov eax, dword [edi + 4]
mov esi, dword [eax + 0x38]
test eax, eax
je 0x4ad4ba
push eax
call 0x4d002d
mov dword [edi + 4], esi
mov byte [edi + 9], 0
jmp 0x48921b
mov byte [edi + 9], 1
jmp 0x4892fc
push eax
call fcn.004c599d
mov dword [esi + 0x2c], 0
jmp 0x489242
mov ecx, dword [esi + 0x20]
test ecx, ecx
je 0x48924e
push ecx
call dword [0x48744c]
mov eax, dword [esi + 0x20]
push eax
call fcn.0048fc76
add esp, 4
jmp 0x489272
mov eax, dword [esi + 0x20]
test eax, eax
je 0x489272
push eax
call fcn.004c7180
jmp 0x489272
lea eax, [esi + 0x20]
call fcn.0048d350
jmp 0x489272
mov ecx, dword [esi + 0x20]
mov edx, dword [ecx + 4]
push edx
call fcn.0048fc76
mov eax, dword [esi + 0x20]
add esp, 4
push eax
call fcn.0048fc76
add esp, 4
jmp 0x489272
mov eax, dword [esi + 0x20]
test eax, eax
je 0x489272
push eax
call 0x4ce3d6
jmp 0x489272
mov edx, dword [ebx]
push edx
call fcn.0049155c
mov eax, dword [ebx + 0xc]
add esp, 4
push eax
call fcn.0048fc76
add esp, 4
jmp 0x489298
mov ecx, dword [esi]
test ecx, ecx
je 0x4892b4
push ecx
call dword [0x48744c]
mov ecx, dword [esi]
push ecx
call fcn.0048fc76
add esp, 4
jmp 0x4892d8
mov eax, dword [esi]
test eax, eax
je 0x4892d8
push eax
call fcn.004c7180
jmp 0x4892d8
mov eax, esi
call fcn.0048d350
jmp 0x4892d8
mov edx, dword [esi]
mov eax, dword [edx + 4]
push eax
call fcn.0048fc76
mov ecx, dword [esi]
add esp, 4
push ecx
call fcn.0048fc76
add esp, 4
jmp 0x4892d8
mov eax, dword [esi]
test eax, eax
je 0x4892d8
push eax
call 0x4ce3d6
jmp 0x4892d8
mov ecx, dword [ecx + 0x38]
jmp 0x489313
mov eax, dword [eax + 0x38]
jmp 0x48932a
mov edx, dword [eax + 8]
mov eax, dword [edx + 0x38]
jmp 0x489346
push eax
call fcn.004c599d
mov dword [ebx + 0xc], 0
jmp 0x48935f
mov ecx, dword [ebx]
test ecx, ecx
je 0x48936b
push ecx
call dword [0x48744c]
mov ecx, dword [ebx]
push ecx
call fcn.0048fc76
add esp, 4
jmp 0x48938f
mov eax, dword [ebx]
test eax, eax
je 0x48938f
push eax
call fcn.004c7180
jmp 0x48938f
mov eax, ebx
call fcn.0048d350
jmp 0x48938f
mov edx, dword [ebx]
mov eax, dword [edx + 4]
push eax
call fcn.0048fc76
mov ecx, dword [ebx]
add esp, 4
push ecx
call fcn.0048fc76
add esp, 4
jmp 0x48938f
mov eax, dword [ebx]
test eax, eax
je 0x48938f
push eax
call 0x4ce3d6
jmp 0x48938f
dec eax
cmp eax, 0xb
ja 0x4893b1
jmp dword [eax*4 + 0x42f0ad]
mov ecx, dword [eax + 8]
mov eax, dword [ecx + 0x38]
jmp 0x4893c6
mov eax, dword [0x4b9020]
mov esi, dword [eax + 8]
push eax
call 0x4f3cf8
mov ecx, esi
mov dword [0x4b9020], ecx
mov byte [0x4b9025], 0
jmp 0x4893dd
mov ebx, dword [esp + 0x64]
mov byte [0x4b9025], 1
jmp 0x4894e7
push eax
mov ecx, ebx
call fcn.0048a400
jmp 0x489419
mov ecx, dword [edi]
push ecx
call fcn.0049155c
mov edx, dword [edi + 0xc]
add esp, 4
push edx
call fcn.0048fc76
add esp, 4
jmp 0x48943e
mov ecx, dword [ebx]
test ecx, ecx
je 0x48945a
push ecx
call dword [0x48744c]
mov eax, dword [ebx]
push eax
call fcn.0048fc76
add esp, 4
jmp 0x48947e
mov eax, dword [ebx]
test eax, eax
je 0x48947e
push eax
call fcn.004c7180
jmp 0x48947e
mov eax, ebx
call fcn.0048d350
jmp 0x48947e
mov ecx, dword [ebx]
mov edx, dword [ecx + 4]
push edx
call fcn.0048fc76
mov eax, dword [ebx]
add esp, 4
push eax
call fcn.0048fc76
add esp, 4
jmp 0x48947e
mov eax, dword [ebx]
test eax, eax
je 0x48947e
push eax
call 0x4ce3d6
jmp 0x48947e
push eax
call fcn.004c599d
mov dword [esp + 0xac], 0
jmp 0x48950c
mov esi, dword [esp + 0xa0]
test esi, esi
je 0x489540
push esi
call dword [0x48744c]
push esi
call fcn.0048fc76
add esp, 4
jmp 0x489540
mov eax, dword [esp + 0xa0]
test eax, eax
je 0x489540
push eax
call fcn.004c7180
jmp 0x489540
lea eax, [esp + 0xa0]
call fcn.0048d350
jmp 0x489540
mov esi, dword [esp + 0xa0]
mov edx, dword [esi + 4]
push edx
call fcn.0048fc76
add esp, 4
push esi
call fcn.0048fc76
add esp, 4
jmp 0x489540
mov eax, dword [esp + 0xa0]
test eax, eax
je 0x489540
push eax
call 0x4ce3d6
jmp 0x489540
push eax
call fcn.004c599d
mov dword [esp + 0x8c], 0
mov edx, 1
xor ecx, ecx
jmp 0x48956b
cmp dword [esp + 0x80], ecx
je 0x489598
mov esi, dword [esp + 0x80]
push esi
call dword [0x48744c]
push esi
call fcn.0048fc76
add esp, 4
mov edx, 1
xor ecx, ecx
jmp 0x489598
cmp dword [esp + 0x80], ecx
je 0x489598
mov eax, dword [esp + 0x80]
push eax
call fcn.004c7180
mov edx, 1
xor ecx, ecx
jmp 0x489598
lea eax, [esp + 0x80]
call fcn.0048d350
mov edx, 1
xor ecx, ecx
jmp 0x489598
mov esi, dword [esp + 0x80]
mov ecx, dword [esi + 4]
push ecx
call fcn.0048fc76
add esp, 4
push esi
call fcn.0048fc76
add esp, 4
mov edx, 1
xor ecx, ecx
jmp 0x489598
cmp dword [esp + 0x80], ecx
je 0x489598
mov edx, dword [esp + 0x80]
push edx
call 0x4ce3d6
mov edx, 1
xor ecx, ecx
jmp 0x489598
push eax
call fcn.004c599d
mov dword [esp + 0x2c], 0
mov edx, 1
xor ecx, ecx
jmp 0x4895a4
mov eax, dword [esp + 0x20]
cmp eax, ecx
je 0x4895d5
push eax
call dword [0x48744c]
mov eax, dword [esp + 0x20]
push eax
call fcn.0048fc76
add esp, 4
mov edx, 1
xor ecx, ecx
jmp 0x4895d5
mov eax, dword [esp + 0x20]
cmp eax, ecx
je 0x4895d5
push eax
call fcn.004c7180
mov edx, 1
xor ecx, ecx
jmp 0x4895d5
lea eax, [esp + 0x20]
call fcn.0048d350
mov edx, 1
xor ecx, ecx
jmp 0x4895d5
mov ecx, dword [esp + 0x20]
mov edx, dword [ecx + 4]
push edx
call fcn.0048fc76
mov eax, dword [esp + 0x24]
add esp, 4
push eax
call fcn.0048fc76
add esp, 4
mov edx, 1
xor ecx, ecx
jmp 0x4895d5
mov eax, dword [esp + 0x20]
cmp eax, ecx
je 0x4895d5
push eax
call 0x4ce3d6
mov edx, 1
xor ecx, ecx
jmp 0x4895d5
mov edx, dword [edi]
push edx
call fcn.0049155c
mov eax, dword [edi + 0xc]
add esp, 4
push eax
call fcn.0048fc76
add esp, 4
jmp 0x489633
mov ecx, dword [esi]
test ecx, ecx
je 0x48964f
push ecx
call dword [0x48744c]
mov ecx, dword [esi]
push ecx
call fcn.0048fc76
add esp, 4
jmp 0x489673
mov eax, dword [esi]
test eax, eax
je 0x489673
push eax
call fcn.004c7180
jmp 0x489673
mov eax, esi
call fcn.0048d350
jmp 0x489673
mov edx, dword [esi]
mov eax, dword [edx + 4]
push eax
call fcn.0048fc76
mov ecx, dword [esi]
add esp, 4
push ecx
call fcn.0048fc76
add esp, 4
jmp 0x489673
mov eax, dword [esi]
test eax, eax
je 0x489673
push eax
call 0x4ce3d6
jmp 0x489673
mov eax, dword [esp + 0x7c]
push eax
push 0x70
mov ecx, dword [ebp + 8]
push ecx
call 0x4e49f6
lea esi, [esp + 0x20]
call fcn.00487f70
lea ecx, [esp + 0x60]
call fcn.004c4c89
lea ecx, [esp + 0x30]
call fcn.0048fa60
mov eax, 1
jmp 0x48969f