Function at 0x4966c0
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.0049ded5
add esp, 4
mov dword [esp + 0x34], eax
add eax, 1
je 0x4b9ac9
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.0049e31a
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.0049db70
add esp, 0xc
push 4
call fcn.0049e31a
add esp, 4
test eax, eax
je 0x4b9ad3
mov dword [eax], 1
mov esi, dword [ebp + 8]
cmp dword [esi + 0x140], 0
mov dword [esp + 0x3c], eax
je 0x4b9bb5
cmp dword [eax], 1
jg 0x4b9ada
mov eax, dword [esp + 0x34]
mov ecx, dword [esp + 0x30]
push eax
push ecx
call dword [fcn.00482640]
mov eax, dword [esi + 0x13c]
test eax, eax
jne 0x4b9b44
mov edx, dword [ebp + 8]
mov esi, dword [edx + 0x134]
test esi, esi
je 0x4b9bb5
mov dword [esp + 0x1c], esi
mov edi, edi
mov edx, dword [esi + 4]
cmp edx, dword [esp + 0x34]
jne 0x497647
test edx, edx
jbe 0x49675b
mov ecx, dword [esp + 0x30]
mov eax, dword [esi]
jmp 0x496740
mov si, word [eax]
cmp si, word [ecx]
jne 0x497643
add eax, 2
add ecx, 2
sub edx, 1
jne 0x496740
mov esi, dword [esp + 0x1c]
mov eax, dword [esp + 0x3c]
add dword [eax], 0xffffffff
jne 0x49677e
mov eax, dword [esp + 0x30]
push eax
call fcn.0049deef
mov ecx, dword [esp + 0x40]
add esp, 4
push ecx
call fcn.0049deef
add esp, 4
mov eax, esi
test eax, eax
je 0x4b9bbe
mov edx, dword [eax + 0x14]
mov ecx, dword [eax + 0x18]
mov dword [esp + 0x74], edx
mov edx, dword [eax + 0x10]
mov eax, dword [edi]
mov dword [esp + 0x44], ecx
mov dword [esp + 0x7c], 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], 0x487630
mov dword [esp + 0x34], ecx
mov dword [esp + 0x38], ecx
mov dword [esp + 0x3c], ecx
mov dword [esp + 0x64], 0x48af14
mov dword [esp + 0x68], ecx
mov dword [esp + 0x6c], ecx
mov dword [esp + 0x70], ecx
jne 0x4b9b38
inc eax
mov dword [esp + 0x84], edx
mov edx, eax
mov dword [esp + 0x18], ecx
xor esi, esi
mov dword [esp + 0x58], 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 0x49682f
inc eax
jmp 0x49681b
sub ecx, 0x47
je 0x4b9c1e
sub ecx, 1
jne 0x4b9bf5
test esi, esi
jne 0x4b9c17
mov dword [esp + 0x14], eax
inc eax
mov dword [edi], eax
mov eax, dword [esp + 0x7c]
cmp eax, dword [0x4a8e90]
jg 0x4b9c24
cmp eax, ecx
jle 0x4b9c24
shl eax, 4
add eax, dword [0x4a8ec4]
mov dword [esp + 0x60], eax
cmp dword [esp + 0x74], ecx
mov dword [esp + 0x5c], ecx
jle 0x496a4a
mov dword [esp + 0x10], 3
mov dword [esp + 0x80], ecx
cmp edx, dword [esp + 0x14]
jae 0x496a4a
mov ecx, dword [esp + 0x60]
mov eax, dword [ecx + 4]
mov ecx, dword [esp + 0x10]
inc dword [esp + 0x5c]
lea eax, [eax + ecx*4]
mov ecx, dword [eax]
xor edi, edi
xor bl, bl
cmp word [ecx + 8], di
je 0x4b9c2d
mov eax, dword [ebp + 0xc]
mov ecx, dword [eax + 4]
mov edx, dword [ecx + edx*4]
cmp word [edx + 8], 0x33
je 0x4968d0
xor bl, bl
mov esi, dword [esp + 0x6c]
mov eax, dword [esp + 0x70]
cmp esi, eax
je 0x49765b
push 1
call fcn.0049e31a
add esp, 4
test eax, eax
je 0x4b9c65
mov byte [eax], bl
mov edx, dword [esp + 0x68]
mov dword [edx + esi*4], eax
inc esi
mov dword [esp + 0x6c], esi
test bl, bl
jne 0x4b9c6c
mov eax, dword [esp + 0x2c]
test eax, eax
jne 0x4b9d76
mov eax, dword [esp + 0x28]
cmp eax, 8
je 0x4b9d89
cmp eax, 0xa
je 0x4b9dae
cmp eax, 5
je 0x4b9dc5
cmp eax, 0xb
je 0x4b9dd3
cmp eax, 0xc
je 0x4b9df5
mov esi, dword [esp + 0x38]
mov eax, dword [esp + 0x3c]
mov dword [esp + 0x28], 1
mov dword [esp + 0x20], 0
cmp esi, eax
je 0x4976b8
mov edi, dword [esp + 0x34]
push 0x10
call fcn.0049e31a
add esp, 4
test eax, eax
je 0x4b9fdb
mov ebx, eax
mov eax, dword [esp + 0x28]
mov dword [ebx + 8], eax
mov dword [ebx + 0xc], 0
cmp eax, 1
jne 0x4b9e0c
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 + 0x60]
push eax
push ecx
mov ecx, dword [ebp + 8]
call fcn.00497750
test eax, eax
jne 0x4bb1d7
mov eax, dword [esp + 0x10]
mov edx, dword [esp + 0x60]
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 0x4b9fe2
mov edx, dword [esp + 0x58]
cmp edx, ebx
je 0x496a4a
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 0x4ba031
lea eax, [edx + 1]
cmp eax, dword [esp + 0x14]
je 0x4ba031
mov esi, dword [esp + 0x10]
mov edx, eax
mov eax, dword [esp + 0x60]
mov dword [esp + 0x58], edx
mov eax, dword [eax + 4]
mov eax, dword [eax + esi*4]
cmp word [eax + 8], cx
jne 0x496a31
inc dword [esp + 0x10]
mov eax, dword [esp + 0x80]
inc eax
cmp eax, dword [esp + 0x74]
mov dword [esp + 0x80], eax
jl 0x496892
mov ebx, dword [esp + 0x5c]
cmp ebx, dword [esp + 0x44]
jl 0x4bb1c4
cmp ebx, dword [esp + 0x74]
jg 0x4bb1c4
cmp edx, dword [esp + 0x14]
jne 0x4bb1c4
mov eax, dword [esp + 0x7c]
xor esi, esi
xor ecx, ecx
cmp eax, esi
mov dword [esp + 0x10], 3
mov dword [esp + 0x1c], esi
mov dword [esp + 0x4c], ecx
mov dword [esp + 0x50], eax
jl 0x4ba043
cmp byte [0x4a7ce5], 0
jne 0x4ba04c
push 0xc
call fcn.0049e31a
add esp, 4
cmp eax, esi
je 0x4ba0ef
mov edi, eax
mov dword [edi], esi
mov edx, dword [esp + 0x50]
mov dword [edi + 4], edx
cmp dword [esp + 0x50], esi
jl 0x4ba06d
mov eax, dword [esp + 0x4c]
cmp eax, esi
jne 0x4ba075
mov dword [edi], esi
mov ecx, dword [0x4a7ce0]
mov dword [edi + 8], ecx
mov dword [0x4a7ce0], edi
mov eax, dword [esp + 0x4c]
mov edx, 1
add dword [0x4a7cdc], edx
cmp eax, esi
jne 0x4ba0f6
cmp dword [esp + 0x74], edx
jl 0x496fab
mov dword [esp + 0x80], edx
lea esp, [esp]
mov ecx, dword [esp + 0x60]
mov ecx, dword [ecx + 4]
mov esi, dword [esp + 0x10]
xor ebx, ebx
or edx, 0xffffffff
mov word [esp + 0xd8], dx
mov dword [esp + 0xc0], 0x485234
mov dword [esp + 0xc4], ebx
mov dword [esp + 0xc8], ebx
mov dword [esp + 0xcc], ebx
mov dword [esp + 0x84], 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 0x4ba157
mov edx, dword [esp + 0x80]
cmp edx, dword [esp + 0x5c]
jg 0x4ba1be
mov edi, dword [esp + 0x68]
mov edx, dword [esp + 0x1c]
mov edi, dword [edi + edx*4]
or eax, 0x200
cmp byte [edi], 0
jne 0x4ba18e
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 + 0x4c], eax
mov eax, dword [eax + ecx]
mov edi, dword [eax]
cmp dword [0x4a7cdc], ebx
je 0x4ba292
cmp byte [0x4a7ce5], 0
mov dword [esp + 0x18], edx
jne 0x4ba2a5
mov ebx, dword [0x4a7ce0]
xor eax, eax
mov dword [esp + 0x14], ebx
cmp dword [ebx], eax
je 0x496cc0
test byte [0x4a937c], 1
mov byte [esp + 0x4b], al
je 0x4ba2b3
mov dword [0x4a9378], eax
mov dword [0x4a9374], eax
mov eax, 0x4a935c
mov dword [esp + 0x78], eax
mov dword [esp + 0x54], eax
mov edi, edi
mov eax, dword [edi + 4]
mov ecx, dword [ebx]
mov edx, dword [ecx + 4]
test eax, eax
je 0x4ba2d8
test edx, edx
je 0x4ba2e0
cmp eax, edx
jb 0x4ba300
test eax, eax
jbe 0x4ba2f1
mov ecx, dword [ecx]
mov edx, eax
mov eax, dword [edi]
mov edi, edi
mov bx, word [eax]
cmp bx, word [ecx]
jne 0x496c58
add eax, 2
add ecx, 2
sub edx, 1
jne 0x496c40
jmp 0x4ba2ed
mov dx, bx
mov ebx, dword [esp + 0x14]
cmp dx, word [ecx]
jb 0x4ba2f8
mov eax, 1
test eax, eax
jl 0x4ba30e
jle 0x4ba3a9
mov eax, dword [ebx]
mov eax, dword [eax + 0x1c]
test eax, eax
jne 0x4ba360
cmp byte [esp + 0x4b], 0
mov eax, dword [ebx]
mov ecx, dword [eax + 0x18]
mov edx, dword [esp + 0x78]
mov dword [edx + 0x1c], ecx
mov eax, dword [ebx]
mov ecx, dword [eax + 0x1c]
mov edx, dword [esp + 0x54]
mov dword [edx + 0x18], ecx
mov eax, dword [ebx]
mov ecx, dword [0x4a9378]
mov dword [eax + 0x18], ecx
mov edx, dword [ebx]
mov eax, dword [0x4a9374]
mov dword [edx + 0x1c], eax
jne 0x4ba3b3
and esi, 0xff00
push 0x20
mov dword [esp + 0x48], esi
call fcn.0049e31a
add esp, 4
test eax, eax
je 0x4ba3d6
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.0049e31a
add esp, 4
xor ecx, ecx
mov dword [esi], eax
push 4
mov word [eax], cx
call fcn.0049e31a
add esp, 4
test eax, eax
je 0x4ba3cf
mov dword [eax], 1
mov dword [esi + 0xc], eax
mov ebx, esi
cmp ebx, edi
je 0x496d62
mov eax, dword [ebx + 0xc]
cmp dword [eax], 1
jg 0x4ba3dd
mov esi, dword [edi + 4]
lea eax, [esi + 1]
mov dword [ebx + 4], esi
cmp dword [ebx + 8], eax
jb 0x4ba3fc
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.0049db70
add esp, 0xc
mov eax, dword [esp + 0x44]
push 0x10
mov dword [ebx + 0x10], eax
call fcn.0049e31a
xor ecx, ecx
add esp, 4
cmp eax, ecx
je 0x496dcd
mov edi, dword [esp + 0x18]
mov esi, eax
mov eax, dword [edi + 8]
mov dword [esi + 8], eax
dec eax
mov dword [esp + 0x54], esi
mov dword [esi + 0xc], ecx
cmp eax, 0xb
ja 0x496dc9
jmp dword [eax*4 + 0x40ab18]
mov ecx, dword [esp + 0x54]
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 0x49770b
test byte [0x4a937c], 1
je 0x4ba5b0
mov eax, 0x4a935c
mov dword [0x4a9378], edi
mov dword [0x4a9374], edi
mov dword [esp + 0x78], eax
mov dword [esp + 0x54], eax
lea esp, [esp]
mov eax, dword [ebx + 4]
mov edx, dword [esi + 4]
cmp eax, edi
je 0x4ba5d3
cmp edx, edi
je 0x4ba5db
cmp eax, edx
jb 0x4ba5fb
cmp eax, edi
jbe 0x4ba5ea
mov ecx, dword [esi]
mov edx, eax
mov eax, dword [ebx]
lea esp, [esp]
mov di, word [eax]
cmp di, word [ecx]
jne 0x496e58
add eax, 2
add ecx, 2
sub edx, 1
jne 0x496e40
jmp 0x4ba5e8
mov dx, word [eax]
cmp dx, word [ecx]
jb 0x4ba5f1
mov eax, 1
xor edi, edi
cmp eax, edi
jl 0x4ba609
jle 0x496e86
lea eax, [esi + 0x1c]
mov dword [esp + 0x18], eax
mov eax, dword [eax]
cmp eax, edi
jne 0x4ba668
mov edx, dword [esi + 0x18]
mov eax, dword [esp + 0x54]
mov dword [eax + 0x1c], edx
mov ecx, dword [esi + 0x1c]
mov edx, dword [esp + 0x78]
mov dword [edx + 0x18], ecx
mov eax, dword [0x4a9378]
mov edx, dword [esi + 4]
mov dword [esi + 0x18], eax
mov ecx, dword [0x4a9374]
mov dword [esi + 0x1c], ecx
mov eax, dword [ebx + 4]
cmp eax, edi
je 0x4ba6b6
cmp edx, edi
je 0x4ba6be
cmp eax, edx
jb 0x4ba6de
cmp eax, edi
jbe 0x4ba6cd
mov ecx, dword [esi]
mov edx, eax
mov eax, dword [ebx]
mov di, word [eax]
cmp di, word [ecx]
jne 0x496eef
add eax, 2
add ecx, 2
sub edx, 1
jne 0x496ed7
jmp 0x4ba6cb
mov dx, word [eax]
cmp dx, word [ecx]
jb 0x4ba6d4
mov eax, 1
xor edi, edi
cmp eax, edi
jl 0x4ba6ec
jle 0x4ba6fd
mov ecx, dword [0x4a9374]
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 + 0x60]
mov eax, dword [edx + 4]
mov ecx, dword [esp + 0x4c]
mov edx, dword [ecx + eax + 4]
cmp word [edx + 8], 0x41
je 0x4ba704
add dword [esp + 0x10], 2
mov ax, word [esp + 0xd8]
inc dword [esp + 0x1c]
cmp ax, 0x30
jge 0x4ba738
cmp dword [esp + 0xc8], 0
mov dword [esp + 0xc0], 0x485234
ja 0x4ba75c
mov ecx, dword [esp + 0xc4]
push ecx
mov dword [esp + 0xcc], 0
call fcn.0049deef
mov eax, dword [esp + 0x84]
inc eax
add esp, 4
cmp eax, dword [esp + 0x74]
mov dword [esp + 0x80], eax
jle 0x496b10
mov ebx, dword [esp + 0x5c]
mov esi, dword [ebp + 8]
mov edx, dword [esi]
xor eax, eax
mov dword [esi + 0x148], ebx
mov dword [esp + 0x88], eax
mov dword [esp + 0x94], eax
mov byte [esp + 0x98], al
mov dword [esp + 0x9c], eax
mov byte [esp + 0xa0], al
mov dword [esp + 0xa8], eax
mov dword [esp + 0xb4], eax
mov byte [esp + 0xb8], al
mov eax, dword [edx + 4]
cmp byte [eax + esi + 0xd], 0
mov ecx, 1
lea edi, [eax + esi + 4]
mov dword [esp + 0x90], ecx
mov dword [esp + 0xb0], ecx
jne 0x4ba785
push 0x40
call fcn.0049e31a
xor ecx, ecx
add esp, 4
cmp eax, ecx
je 0x4ba7d7
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 eax, dword [esp + 0x7c]
mov edx, dword [esi + 0xf4]
mov ebx, dword [esi + 0x16c]
inc eax
lea edi, [esi + 0x16c]
push eax
mov ecx, esi
mov dword [esp + 0x50], edx
call fcn.00496160
cmp ebx, dword [edi]
jb 0x4ba7de
mov ecx, dword [esp + 0x4c]
mov edi, esi
mov edx, dword [edi]
mov dword [edi + 0xf4], ecx
mov eax, dword [edx + 4]
cmp byte [eax + edi + 0xd], 0
lea eax, [eax + edi + 4]
jne 0x4ba7ec
mov eax, dword [eax + 4]
cmp byte [eax + 0x10], 0
je 0x4baa14
mov edx, dword [ebp + 0x14]
mov byte [edx], 1
mov eax, dword [edi]
mov ecx, dword [eax + 4]
cmp byte [ecx + edi + 0xd], 0
lea eax, [ecx + edi + 4]
jne 0x4ba7f7
mov esi, dword [eax + 4]
mov ebx, dword [ebp + 0x10]
cmp ebx, esi
je 0x49715d
mov eax, dword [ebx + 0xc]
test eax, eax
jne 0x4ba802
mov eax, dword [ebx + 8]
cmp eax, 8
je 0x4ba814
cmp eax, 0xa
je 0x4ba835
cmp eax, 5
je 0x4ba84a
cmp eax, 0xb
je 0x4ba856
cmp eax, 0xc
je 0x4ba874
mov dword [ebx + 8], 1
mov dword [ebx], 0
mov eax, dword [esi + 8]
mov dword [ebx + 8], eax
cmp eax, 4
jne 0x4ba889
push 0x10
call fcn.0049e31a
add esp, 4
test eax, eax
je 0x4baa05
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 0x4baa0c
cmp byte [eax + 0x18], 0
jne 0x4baa34
cmp byte [esi + 9], 0
jne 0x4baa4a
mov eax, dword [esi + 4]
cmp byte [eax + 0x30], 0
jne 0x4baa55
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 0x4baa71
cmp byte [edi + 8], 0
jne 0x4baa91
mov esi, dword [edi + 4]
mov edx, dword [esi + 0x38]
mov dword [esp + 0x4c], edx
test esi, esi
je 0x497285
mov eax, dword [esi + 0x2c]
lea ebx, [esi + 0x20]
test eax, eax
jne 0x4baa9a
mov eax, dword [ebx + 8]
cmp eax, 8
je 0x4baaac
cmp eax, 0xa
je 0x4baacd
cmp eax, 5
je 0x4baae2
cmp eax, 0xb
je 0x4baaee
cmp eax, 0xc
je 0x4bab0c
mov dword [ebx + 8], 1
mov dword [ebx], 0
mov ebx, dword [esi + 0xc]
test ebx, ebx
je 0x49723c
mov eax, dword [ebx + 0xc]
dec dword [eax]
mov ecx, dword [ebx + 0xc]
cmp dword [ecx], 0
je 0x4bab21
push ebx
call fcn.0049deef
add esp, 4
mov dword [esi + 0xc], 0
mov eax, dword [esi + 8]
cmp eax, 8
je 0x4bab3d
cmp eax, 0xa
je 0x4bab5e
cmp eax, 5
je 0x4bab73
cmp eax, 0xb
je 0x4bab7f
cmp eax, 0xc
je 0x4bab9d
push esi
mov dword [esi + 8], 1
mov dword [esi], 0
call fcn.0049deef
mov ebx, dword [ebp + 8]
add esp, 4
mov edx, dword [esp + 0x4c]
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 0x4babb2
mov edx, dword [esp + 0x9c]
mov dword [ecx + 0x14], edx
cmp byte [eax + 0xd], 0
mov eax, dword [eax + 8]
jne 0x4babba
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 + 0x4c], eax
jne 0x4babc2
mov eax, dword [eax + 8]
lea ebx, [eax + 0x20]
lea eax, [esp + 0xa8]
cmp ebx, eax
je 0x497345
mov eax, dword [ebx + 0xc]
test eax, eax
jne 0x4babcd
mov eax, dword [ebx + 8]
cmp eax, 8
je 0x4babdf
cmp eax, 0xa
je 0x4bac00
cmp eax, 5
je 0x4bac15
cmp eax, 0xb
je 0x4bac21
cmp eax, 0xc
je 0x4bac3f
mov eax, dword [esp + 0xb0]
mov dword [ebx], 0
mov dword [ebx + 8], eax
cmp eax, 1
jne 0x4bac54
mov eax, dword [esp + 0xa8]
mov dword [ebx], eax
mov edi, dword [esp + 0x6c]
mov eax, dword [esp + 0x4c]
cmp byte [eax + 0xd], 0
jne 0x4bae37
mov eax, dword [eax + 8]
mov byte [eax + 0x30], 0
cmp byte [0x4a7ce5], 0
jne 0x4bae42
mov ecx, dword [0x4a7ce0]
cmp byte [0x4a7ce4], 0
jne 0x4bae64
mov esi, dword [ecx]
mov edx, dword [ecx + 8]
mov dword [esp + 0x44], edx
mov dword [esp + 0x4c], ecx
test esi, esi
je 0x497459
mov eax, dword [esi + 0x18]
mov ebx, ecx
test eax, eax
je 0x4973a2
push eax
call fcn.00498400
mov eax, dword [esi + 0x1c]
test eax, eax
jne 0x4bae74
cmp byte [esi + 0x10], 0
jne 0x497428
mov ebx, dword [esi + 0x14]
test ebx, ebx
je 0x497428
mov edi, dword [ebx + 0xc]
test edi, edi
je 0x4973e2
mov eax, dword [edi + 0xc]
dec dword [eax]
mov eax, dword [edi + 0xc]
cmp dword [eax], 0
je 0x4bae81
push edi
call fcn.0049deef
add esp, 4
mov dword [ebx + 0xc], 0
mov eax, dword [ebx + 8]
cmp eax, 8
je 0x4bae9d
cmp eax, 0xa
je 0x4baebe
cmp eax, 5
je 0x4baed3
cmp eax, 0xb
je 0x4baedf
cmp eax, 0xc
je 0x4baefd
push ebx
mov dword [ebx + 8], 1
mov dword [ebx], 0
call fcn.0049deef
add esp, 4
mov eax, dword [esi + 0xc]
dec dword [eax]
mov ecx, dword [esi + 0xc]
cmp dword [ecx], 0
jne 0x49744c
mov edx, dword [esi]
push edx
call fcn.0049deef
mov eax, dword [esi + 0xc]
add esp, 4
push eax
call fcn.0049deef
add esp, 4
push esi
call fcn.0049deef
mov edi, dword [esp + 0x70]
add esp, 4
mov ecx, dword [esp + 0x4c]
mov ebx, dword [esp + 0x68]
push ecx
call fcn.0049deef
mov edx, dword [esp + 0x48]
add esp, 4
mov dword [0x4a7ce0], edx
mov byte [0x4a7ce5], 0
mov eax, dword [esp + 0xdc]
dec dword [0x4a7cdc]
mov ecx, dword [ebp + 8]
mov dword [ecx + 0x148], eax
mov eax, dword [esp + 0xb4]
test eax, eax
jne 0x4baf12
mov eax, dword [esp + 0xb0]
cmp eax, 8
je 0x4baf28
cmp eax, 0xa
je 0x4baf4c
cmp eax, 5
je 0x4baf66
cmp eax, 0xb
je 0x4baf77
cmp eax, 0xc
je 0x4baf98
mov eax, dword [esp + 0x94]
mov esi, dword [esp + 0x90]
xor ecx, ecx
mov edx, 1
mov dword [esp + 0xb0], edx
mov dword [esp + 0xa8], ecx
cmp eax, ecx
jne 0x4bafb2
cmp esi, 8
je 0x4bafcd
cmp esi, 0xa
je 0x4baffb
cmp esi, 5
je 0x4bb01f
cmp esi, 0xb
je 0x4bb035
cmp esi, 0xc
je 0x4bb05b
mov eax, dword [esp + 0x2c]
cmp eax, ecx
jne 0x4bb07f
mov eax, dword [esp + 0x28]
cmp eax, 8
je 0x4bb097
cmp eax, 0xa
je 0x4bb0c1
cmp eax, 5
je 0x4bb0dd
cmp eax, 0xb
je 0x4bb0f0
cmp eax, 0xc
je 0x4bb117
mov dword [esp + 0x28], edx
mov dword [esp + 0x20], ecx
cmp edi, ecx
jbe 0x497588
xor esi, esi
mov ecx, dword [ebx + esi*4]
push ecx
call fcn.0049deef
inc esi
add esp, 4
cmp esi, edi
jb 0x497577
mov edx, dword [esp + 0x68]
push edx
call fcn.0049deef
add esp, 4
cmp dword [esp + 0x38], 0
jbe 0x497622
xor ebx, ebx
mov eax, dword [esp + 0x34]
mov esi, dword [eax + ebx*4]
test esi, esi
je 0x49761b
mov edi, dword [esi + 0xc]
test edi, edi
je 0x4975d5
mov eax, dword [edi + 0xc]
dec dword [eax]
mov ecx, dword [edi + 0xc]
cmp dword [ecx], 0
je 0x4bb133
push edi
call fcn.0049deef
add esp, 4
mov dword [esi + 0xc], 0
mov eax, dword [esi + 8]
cmp eax, 8
je 0x4bb14f
cmp eax, 0xa
je 0x4bb170
cmp eax, 5
je 0x4bb185
cmp eax, 0xb
je 0x4bb191
cmp eax, 0xc
je 0x4bb1af
push esi
mov dword [esi + 8], 1
mov dword [esi], 0
call fcn.0049deef
add esp, 4
inc ebx
cmp ebx, dword [esp + 0x38]
jb 0x4975a2
mov edx, dword [esp + 0x34]
push edx
call fcn.0049deef
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 0x496720
jmp 0x4b9bb5
add eax, eax
cmp eax, 4
jae 0x497667
mov eax, 4
xor ecx, ecx
mov dword [esp + 0x70], eax
mov edx, 4
mul edx
seto cl
neg ecx
or ecx, eax
push ecx
call fcn.0049e31a
mov edx, dword [esp + 0x6c]
add esp, 4
lea ecx, [esi*4]
push ecx
push edx
push eax
mov dword [esp + 0x58], eax
call fcn.0049db70
mov eax, dword [esp + 0x74]
add esp, 0xc
push eax
call fcn.0049deef
mov ecx, dword [esp + 0x50]
add esp, 4
mov dword [esp + 0x68], ecx
jmp 0x4968e0
add eax, eax
cmp eax, 4
jae 0x4976c4
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.0049e31a
mov ebx, dword [esp + 0x38]
mov edi, eax
add esp, 4
lea eax, [esi*4]
push eax
push ebx
push edi
call fcn.0049db70
add esp, 0xc
push ebx
call fcn.0049deef
add esp, 4
mov dword [esp + 0x34], edi
jmp 0x496965
mov dword [ebx + 0x1c], edi
mov dword [ebx + 0x18], edi
jmp 0x496f23
mov eax, 8
jmp 0x496682
xor eax, eax
jmp 0x4966ce
mov eax, dword [esp + 0x3c]
dec dword [eax]
lea esi, [esp + 0x30]
call fcn.0048dfe0
mov eax, dword [esp + 0x34]
inc eax
push eax
call 0x4d3147
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.0049e31a
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.0049db70
mov dword [esp + 0x3c], esi
mov esi, dword [ebp + 8]
add esp, 0xc
jmp 0x4966eb
push edx
mov edx, dword [ebp + 8]
push 0x6f
push edx
jmp 0x4bb1d2
mov esi, dword [esi + 0x140]
sub esi, 1
js 0x4b9bb5
mov dword [esp + 0x7c], eax
mov dword [esp + 0x74], 0
mov dword [esp + 0x5c], esi
mov edx, dword [esp + 0x5c]
mov eax, dword [esp + 0x74]
mov ecx, dword [esp + 0x7c]
add eax, edx
cdq
sub eax, edx
sar eax, 1
mov ecx, dword [ecx + eax*4]
lea esi, [esp + 0x30]
mov dword [esp + 0x1c], eax
call fcn.00498cb0
test eax, eax
jge 0x4b9b9c
mov edx, dword [esp + 0x1c]
dec edx
mov dword [esp + 0x5c], edx
jmp 0x4b9bab
jle 0x4b9bd2
mov eax, dword [esp + 0x1c]
inc eax
mov dword [esp + 0x74], eax
mov ecx, dword [esp + 0x5c]
cmp dword [esp + 0x74], ecx
jle 0x4b9b63
lea ecx, [esp + 0x30]
call fcn.0048f220
mov eax, dword [ebp + 0x10]
mov ecx, dword [ebp + 8]
push eax
push edi
push ebx
push ecx
call 0x509d0e
jmp 0x497631
mov edx, dword [esp + 0x5c]
cmp dword [esp + 0x74], edx
jg 0x4b9bb5
mov eax, dword [esp + 0x7c]
mov ecx, dword [esp + 0x1c]
mov esi, dword [eax + ecx*4]
lea ecx, [esp + 0x30]
call fcn.0048f220
jmp 0x49677e
sub ecx, 0x37
jne 0x49682c
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 0x4bb1d2
dec esi
inc eax
jmp 0x49681b
inc esi
jmp 0x49682c
mov dword [esp + 0x60], ecx
jmp 0x496875
mov ecx, dword [eax]
mov ecx, dword [ecx]
cmp ecx, 0x24
jne 0x4b9c41
mov bl, 1
jmp 0x4b9c4f
cmp ecx, 0x1e
jne 0x4b9fec
mov edi, 0x100
mov ecx, dword [eax + 4]
inc dword [esp + 0x10]
add eax, 4
cmp word [ecx + 8], 0
je 0x4b9c2d
jmp 0x4968be
xor eax, eax
jmp 0x4968f4
mov eax, dword [ebp + 0xc]
mov edx, dword [eax + 4]
mov ecx, dword [esp + 0x58]
mov eax, dword [edx + ecx*4]
cmp word [eax + 8], 0x33
jne 0x4b9ff8
mov esi, dword [eax]
lea ecx, [esp + 0x18]
push ecx
lea edx, [esp + 0x20]
push edx
xor ecx, ecx
call fcn.00498fe0
test al, al
je 0x4ba014
test dword [esp + 0x18], 0x100
je 0x4b9cd9
test edi, 0x100
jne 0x4b9cd9
mov ecx, dword [ebp + 0xc]
mov edx, dword [ecx + 4]
mov eax, dword [esp + 0x58]
mov ecx, dword [edx + eax*4]
movsx edx, word [ecx + 0xa]
mov eax, dword [ebp + 8]
push edx
push 0xb0
push eax
jmp 0x4bb1d2
mov eax, dword [esp + 0x1c]
mov edi, 1
add dword [esp + 0x58], edi
add dword [esp + 0x10], edi
cmp dword [eax + 8], 5
jne 0x4b9d4a
mov ecx, dword [ebp + 0xc]
mov edx, dword [ecx + 4]
mov eax, dword [esp + 0x58]
mov edx, dword [edx + eax*4]
cmp word [edx + 8], 0x4e
jne 0x4b9d4a
mov edx, dword [ebp + 8]
push 0
lea eax, [esp + 0x20]
push eax
push edx
lea eax, [esp + 0x64]
call fcn.00499220
test eax, eax
je 0x4b9d4a
lea esi, [esp + 0x20]
call fcn.00495ec0
lea ecx, [esp + 0x64]
call fcn.004c0e22
lea ecx, [esp + 0x30]
call fcn.0049d6e0
mov eax, edi
jmp 0x497631
lea esi, [esp + 0x20]
call fcn.00495ec0
mov eax, dword [esp + 0x1c]
push esi
lea esi, [esp + 0x34]
mov dword [esp + 0x2c], 6
mov dword [esp + 0x24], eax
call fcn.00498a00
mov ebx, dword [esp + 0x14]
jmp 0x4969e6
push eax
call 0x4d02f6
mov dword [esp + 0x2c], 0
jmp 0x496914
mov eax, dword [esp + 0x20]
test eax, eax
je 0x496945
push eax
call dword [0x48242c]
mov edx, dword [esp + 0x20]
push edx
call fcn.0049deef
add esp, 4
jmp 0x496945
mov eax, dword [esp + 0x20]
test eax, eax
je 0x496945
push eax
call 0x4d138f
jmp 0x496945
lea eax, [esp + 0x20]
call fcn.0049af80
jmp 0x496945
mov eax, dword [esp + 0x20]
mov ecx, dword [eax + 4]
push ecx
call fcn.0049deef
mov edx, dword [esp + 0x24]
add esp, 4
push edx
call fcn.0049deef
add esp, 4
jmp 0x496945
mov eax, dword [esp + 0x20]
test eax, eax
je 0x496945
push eax
call 0x4d7fb8
jmp 0x496945
dec eax
cmp eax, 0xb
ja 0x4b9ebf
jmp dword [eax*4 + 0x42e5fd]
mov edi, dword [esp + 0x34]
mov esi, dword [esp + 0x38]
jmp 0x49699a
xor eax, eax
jmp 0x49699c
add dword [esp + 0x10], 2
jmp 0x4969e6
push 0xffffffffffffffff
push 0x91
jmp 0x4bb1ce
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 0x4bb1d2
mov ecx, dword [ebp + 0xc]
mov edx, dword [ecx + 4]
mov eax, dword [esp + 0x58]
mov ecx, dword [edx + eax*4]
movsx edx, word [ecx + 0xa]
mov eax, dword [ebp + 8]
push edx
push 0x79
push eax
jmp 0x4bb1d2
mov ecx, dword [esi + 4]
mov edx, dword [ecx + edx*4]
movsx eax, word [edx + 0xa]
push eax
push 0x6f
jmp 0x4bb1ce
mov dword [esp + 0x50], esi
jmp 0x496a90
mov edx, dword [0x4a7ce0]
mov dword [edx], ecx
mov eax, dword [esp + 0x50]
mov ecx, dword [0x4a7ce0]
mov dword [ecx + 4], eax
mov byte [0x4a7ce5], 0
jmp 0x496ae1
mov dword [edi + 4], esi
jmp 0x496ac4
push 0x20
mov dword [esp + 0x1c], eax
call fcn.0049e31a
add esp, 4
cmp eax, esi
je 0x4ba096
push eax
call 0x4d7ff6
jmp 0x4ba098
xor eax, eax
mov ecx, dword [esp + 0x18]
push ecx
mov esi, eax
mov dword [edi], eax
call fcn.0049ab50
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 0x4dfcb3
mov edx, dword [esi + 0x1c]
mov eax, dword [edi]
push edx
add eax, 0x1c
push eax
mov ecx, edi
call 0x4dfcb3
xor esi, esi
jmp 0x496ad2
xor edi, edi
jmp 0x496ad2
mov edi, eax
mov eax, dword [eax + 0x18]
cmp eax, esi
je 0x4ba112
push eax
lea ecx, [esp + 0x50]
call fcn.00498400
mov edx, 1
mov eax, dword [edi + 0x1c]
cmp eax, esi
je 0x4ba12c
push eax
lea ecx, [esp + 0x50]
call fcn.00498400
mov edx, 1
cmp byte [edi + 0x10], 0
jne 0x4ba147
mov ecx, dword [edi + 0x14]
cmp ecx, esi
je 0x4ba147
push edx
call fcn.0049aee0
push edi
call 0x4d02f6
mov edx, 1
jmp 0x496af8
mov edi, dword [edx]
mov edi, dword [edi]
cmp edi, 0x24
je 0x4ba179
cmp edi, 0x1e
jne 0x4ba17d
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 0x4ba157
mov dword [esp + 0x10], esi
jmp 0x496b6d
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.004c21fd
push eax
mov eax, dword [ecx]
push eax
call 0x4eba98
test al, al
je 0x4ba79f
add esi, 2
mov dword [esp + 0x10], esi
jmp 0x496f44
lea ebx, [esp + 0xc0]
call fcn.00499de0
mov ecx, dword [esp + 0x60]
mov edx, dword [ecx + 4]
mov dword [esp + 0x84], 0
mov esi, dword [edx + esi*4 + 8]
movzx eax, word [esi + 8]
cmp ax, 0x4a
je 0x4ba1fe
cmp ax, 0x49
je 0x4ba1fe
push esi
jmp 0x4ba21b
push esi
lea edi, [esp + 0xc4]
call fcn.0048f8c0
mov eax, dword [esp + 0x60]
mov ecx, dword [eax + 4]
mov edx, dword [esp + 0x10]
mov eax, dword [ecx + edx*4 + 0xc]
push eax
lea edi, [esp + 0xc4]
call fcn.0048f8c0
mov edi, 0x7f
lea esi, [esp + 0xd0]
call fcn.0048f700
push esi
lea edi, [esp + 0xc4]
call fcn.0048f8c0
mov ecx, dword [ebp + 8]
push 0xffffffffffffffff
lea edx, [esp + 0x24]
push edx
lea eax, [esp + 0x8c]
push eax
push edi
call fcn.00497750
mov eax, dword [esp + 0x10]
mov edx, dword [esp + 0x60]
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 + 0x4c], eax
or ecx, 0x200
mov eax, 1
lea edx, [esp + 0x20]
call fcn.0048e5e0
jmp 0x496f25
push esi
mov eax, edi
push edx
mov edi, 0x4a7ccc
call fcn.00490e60
jmp 0x496f25
mov ecx, dword [0x4a7ce0]
mov ebx, dword [ecx + 8]
jmp 0x496bd8
or dword [0x4a937c], 1
push 0x4a935c
call 0x4d7ff6
push 0x429283
call fcn.0049e021
add esp, 4
xor eax, eax
jmp 0x496bf7
test edx, edx
jne 0x4ba30e
test eax, eax
jne 0x496c7b
jmp 0x496c28
mov ebx, dword [esp + 0x14]
xor eax, eax
jmp 0x496c6d
or eax, 0xffffffff
jmp 0x496c6d
mov ecx, dword [ecx]
mov eax, dword [edi]
call fcn.00498ce0
jmp 0x496c6d
mov eax, dword [ebx]
mov eax, dword [eax + 0x18]
test eax, eax
je 0x496c88
push eax
push edi
call 0x4d0311
add esp, 8
test al, al
je 0x4ba34b
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 0x496c88
mov edx, dword [ebx]
mov eax, dword [esp + 0x54]
mov dword [eax + 0x18], edx
mov eax, dword [ebx]
mov ecx, dword [eax + 0x18]
mov dword [ebx], ecx
jmp 0x496c0a
push edi
push eax
call 0x4d0311
add esp, 8
test al, al
je 0x4ba390
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 0x496c88
mov eax, dword [ebx]
mov ecx, dword [esp + 0x78]
mov dword [ecx + 0x1c], eax
mov eax, dword [ebx]
mov edx, dword [eax + 0x1c]
mov dword [esp + 0x78], eax
mov dword [ebx], edx
jmp 0x496c10
mov byte [esp + 0x4b], 1
jmp 0x496c88
mov ebx, dword [ebx]
test ebx, ebx
je 0x496cc0
mov ecx, dword [esp + 0x18]
mov ebx, dword [ebx + 0x14]
push ecx
call fcn.00495e10
jmp 0x496f25
xor eax, eax
jmp 0x496d25
xor ebx, ebx
jmp 0x496d2a
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 0x496d62
push eax
call 0x4d3147
mov dword [ebx + 8], eax
mov eax, dword [ebx]
test eax, eax
je 0x4ba418
push eax
call fcn.0049deef
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.0049e31a
add esp, 4
xor ecx, ecx
mov dword [ebx], eax
mov word [eax + esi*2], cx
jmp 0x496d4c
or dword [0x4a937c], 1
push 0x4a935c
call 0x4d7ff6
push 0x429283
call fcn.0049e021
add esp, 4
jmp 0x496df3
cmp edx, edi
jne 0x4ba609
cmp eax, edi
jne 0x496e75
jmp 0x496e26
xor edi, edi
xor eax, eax
jmp 0x496e6b
or eax, 0xffffffff
xor edi, edi
jmp 0x496e6b
mov ecx, dword [esi]
mov eax, dword [ebx]
call fcn.00498ce0
jmp 0x496e6b
lea eax, [esi + 0x18]
mov dword [esp + 0x18], eax
mov eax, dword [eax]
cmp eax, edi
je 0x496e86
push eax
push ebx
mov dword [esp + 0x4c], eax
call 0x4d0311
add esp, 8
test al, al
je 0x4ba652
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 0x496e86
add eax, 0x18
mov dword [esp + 0x18], eax
mov eax, dword [esp + 0x78]
mov ecx, dword [esp + 0x18]
mov dword [eax + 0x18], esi
mov dword [esp + 0x78], esi
mov esi, dword [ecx]
jmp 0x496e10
push ebx
push eax
mov dword [esp + 0x4c], eax
call 0x4d0311
add esp, 8
test al, al
je 0x4ba6a0
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 0x496e86
add eax, 0x1c
mov dword [esp + 0x18], eax
mov eax, dword [esp + 0x54]
mov ecx, dword [esp + 0x18]
mov dword [eax + 0x1c], esi
mov dword [esp + 0x54], esi
mov esi, dword [ecx]
jmp 0x496e10
cmp edx, edi
jne 0x4ba6ec
cmp eax, edi
jne 0x496f10
jmp 0x496ec1
xor edi, edi
xor eax, eax
jmp 0x496f02
or eax, 0xffffffff
xor edi, edi
jmp 0x496f02
mov ecx, dword [esi]
mov eax, dword [ebx]
call fcn.00498ce0
jmp 0x496f02
mov eax, dword [esi + 0x18]
mov dword [ebx + 0x18], eax
mov dword [ebx + 0x1c], esi
mov dword [esi + 0x18], edi
jmp 0x496f1f
mov ebx, esi
jmp 0x496f1f
mov ecx, dword [esp + 0x10]
mov edx, dword [eax + ecx*4 + 8]
movzx eax, word [edx + 8]
cmp ax, 0x4a
je 0x4ba72e
cmp ax, 0x49
je 0x4ba72e
add dword [esp + 0x10], 4
jmp 0x496f44
add dword [esp + 0x10], 5
jmp 0x496f44
cmp ax, 0x3f
jg 0x496f5a
mov eax, dword [esp + 0xd0]
test eax, eax
je 0x496f5a
push eax
call 0x4d02f6
jmp 0x496f5a
xor esi, esi
mov eax, dword [esp + 0xc4]
mov eax, dword [eax + esi*4]
test eax, eax
je 0x4ba776
push eax
call 0x4d93f2
inc esi
cmp esi, dword [esp + 0xc8]
jb 0x4ba75e
jmp 0x496f73
mov edx, dword [edi + 4]
lea ecx, [esp + 0x88]
push ecx
push edx
call 0x4fede5
mov byte [edi + 9], 0
jmp 0x497054
mov edx, dword [esp + 0x60]
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 0x4eb22e
lea ecx, [esp + 0xd0]
push ecx
call 0x4d8053
lea ecx, [esp + 0xc0]
call fcn.0049b960
jmp 0x4bb1d7
xor eax, eax
jmp 0x49704b
call fcn.004994a0
cmp ebx, dword [edi]
jb 0x4ba7de
jmp 0x497081
mov ecx, dword [eax + 4]
mov eax, dword [ecx + 0x38]
jmp 0x4970a4
mov edx, dword [eax + 4]
mov esi, dword [edx + 0x38]
jmp 0x4970cb
push eax
call 0x4d02f6
mov dword [ebx + 0xc], 0
jmp 0x4970e1
mov ecx, dword [ebx]
test ecx, ecx
je 0x4970ed
push ecx
call dword [0x48242c]
mov eax, dword [ebx]
push eax
call fcn.0049deef
add esp, 4
jmp 0x497111
mov eax, dword [ebx]
test eax, eax
je 0x497111
push eax
call 0x4d138f
jmp 0x497111
mov eax, ebx
call fcn.0049af80
jmp 0x497111
mov ecx, dword [ebx]
mov edx, dword [ecx + 4]
push edx
call fcn.0049deef
mov eax, dword [ebx]
add esp, 4
push eax
call fcn.0049deef
add esp, 4
jmp 0x497111
mov eax, dword [ebx]
test eax, eax
je 0x497111
push eax
call 0x4d7fb8
jmp 0x497111
dec eax
cmp eax, 0xb
ja 0x49715d
jmp dword [eax*4 + 0x42e62d]
xor eax, eax
jmp 0x49715a
mov eax, dword [eax + 0x38]
jmp 0x497175
mov eax, dword [ebp + 0x14]
mov esi, dword [ebp + 0x10]
mov byte [eax], 0
call fcn.00495ec0
mov dword [esi + 8], 1
mov dword [esi], 0
jmp 0x49715d
mov eax, esi
call fcn.00490d10
mov ecx, dword [eax + 0x14]
mov dword [esp + 0x9c], ecx
jmp 0x49717f
mov edx, dword [esi + 4]
mov eax, dword [edx + 0x38]
jmp 0x49718c
mov eax, esi
call fcn.00490d10
add eax, 0x20
push eax
lea ebx, [esp + 0xac]
call fcn.00495e10
jmp 0x497196
mov eax, dword [edi + 4]
mov esi, dword [eax + 0x38]
test eax, eax
je 0x4baa85
push eax
call 0x4d986c
mov dword [edi + 4], esi
mov byte [edi + 9], 0
jmp 0x4971ad
mov byte [edi + 9], 1
jmp 0x497290
push eax
call 0x4d02f6
mov dword [ebx + 0xc], 0
jmp 0x4971d7
mov ecx, dword [ebx]
test ecx, ecx
je 0x4971e3
push ecx
call dword [0x48242c]
mov eax, dword [ebx]
push eax
call fcn.0049deef
add esp, 4
jmp 0x497207
mov eax, dword [ebx]
test eax, eax
je 0x497207
push eax
call 0x4d138f
jmp 0x497207
mov eax, ebx
call fcn.0049af80
jmp 0x497207
mov ecx, dword [ebx]
mov edx, dword [ecx + 4]
push edx
call fcn.0049deef
mov eax, dword [ebx]
add esp, 4
push eax
call fcn.0049deef
add esp, 4
jmp 0x497207
mov eax, dword [ebx]
test eax, eax
je 0x497207
push eax
call 0x4d7fb8
jmp 0x497207
mov edx, dword [ebx]
push edx
call fcn.0049deef
mov eax, dword [ebx + 0xc]
add esp, 4
push eax
call fcn.0049deef
add esp, 4
jmp 0x49722c
mov ecx, dword [esi]
test ecx, ecx
je 0x497248
push ecx
call dword [0x48242c]
mov ecx, dword [esi]
push ecx
call fcn.0049deef
add esp, 4
jmp 0x49726c
mov eax, dword [esi]
test eax, eax
je 0x49726c
push eax
call 0x4d138f
jmp 0x49726c
mov eax, esi
call fcn.0049af80
jmp 0x49726c
mov edx, dword [esi]
mov eax, dword [edx + 4]
push eax
call fcn.0049deef
mov ecx, dword [esi]
add esp, 4
push ecx
call fcn.0049deef
add esp, 4
jmp 0x49726c
mov eax, dword [esi]
test eax, eax
je 0x49726c
push eax
call 0x4d7fb8
jmp 0x49726c
mov ecx, dword [ecx + 0x38]
jmp 0x4972a7
mov eax, dword [eax + 0x38]
jmp 0x4972be
mov edx, dword [eax + 8]
mov eax, dword [edx + 0x38]
jmp 0x4972da
push eax
call 0x4d02f6
mov dword [ebx + 0xc], 0
jmp 0x4972f3
mov ecx, dword [ebx]
test ecx, ecx
je 0x4972ff
push ecx
call dword [0x48242c]
mov ecx, dword [ebx]
push ecx
call fcn.0049deef
add esp, 4
jmp 0x497323
mov eax, dword [ebx]
test eax, eax
je 0x497323
push eax
call 0x4d138f
jmp 0x497323
mov eax, ebx
call fcn.0049af80
jmp 0x497323
mov edx, dword [ebx]
mov eax, dword [edx + 4]
push eax
call fcn.0049deef
mov ecx, dword [ebx]
add esp, 4
push ecx
call fcn.0049deef
add esp, 4
jmp 0x497323
mov eax, dword [ebx]
test eax, eax
je 0x497323
push eax
call 0x4d7fb8
jmp 0x497323
dec eax
cmp eax, 0xb
ja 0x497345
jmp dword [eax*4 + 0x42e65d]
mov ecx, dword [eax + 8]
mov eax, dword [ecx + 0x38]
jmp 0x49735a
mov eax, dword [0x4a7ce0]
mov esi, dword [eax + 8]
push eax
call 0x4fb309
mov ecx, esi
mov dword [0x4a7ce0], ecx
mov byte [0x4a7ce5], 0
jmp 0x497371
mov ebx, dword [esp + 0x68]
mov byte [0x4a7ce5], 1
jmp 0x49747b
push eax
mov ecx, ebx
call fcn.00498400
jmp 0x4973ad
mov ecx, dword [edi]
push ecx
call fcn.0049deef
mov edx, dword [edi + 0xc]
add esp, 4
push edx
call fcn.0049deef
add esp, 4
jmp 0x4973d2
mov ecx, dword [ebx]
test ecx, ecx
je 0x4973ee
push ecx
call dword [0x48242c]
mov eax, dword [ebx]
push eax
call fcn.0049deef
add esp, 4
jmp 0x497412
mov eax, dword [ebx]
test eax, eax
je 0x497412
push eax
call 0x4d138f
jmp 0x497412
mov eax, ebx
call fcn.0049af80
jmp 0x497412
mov ecx, dword [ebx]
mov edx, dword [ecx + 4]
push edx
call fcn.0049deef
mov eax, dword [ebx]
add esp, 4
push eax
call fcn.0049deef
add esp, 4
jmp 0x497412
mov eax, dword [ebx]
test eax, eax
je 0x497412
push eax
call 0x4d7fb8
jmp 0x497412
push eax
call 0x4d02f6
mov dword [esp + 0xb4], 0
jmp 0x4974a0
mov esi, dword [esp + 0xa8]
test esi, esi
je 0x4974d4
push esi
call dword [0x48242c]
push esi
call fcn.0049deef
add esp, 4
jmp 0x4974d4
mov eax, dword [esp + 0xa8]
test eax, eax
je 0x4974d4
push eax
call 0x4d138f
jmp 0x4974d4
lea eax, [esp + 0xa8]
call fcn.0049af80
jmp 0x4974d4
mov esi, dword [esp + 0xa8]
mov edx, dword [esi + 4]
push edx
call fcn.0049deef
add esp, 4
push esi
call fcn.0049deef
add esp, 4
jmp 0x4974d4
mov eax, dword [esp + 0xa8]
test eax, eax
je 0x4974d4
push eax
call 0x4d7fb8
jmp 0x4974d4
push eax
call 0x4d02f6
xor ecx, ecx
mov dword [esp + 0x94], 0
lea edx, [ecx + 1]
jmp 0x4974ff
cmp dword [esp + 0x88], ecx
je 0x49752c
mov esi, dword [esp + 0x88]
push esi
call dword [0x48242c]
push esi
call fcn.0049deef
add esp, 4
xor ecx, ecx
lea edx, [ecx + 1]
jmp 0x49752c
cmp dword [esp + 0x88], ecx
je 0x49752c
mov eax, dword [esp + 0x88]
push eax
call 0x4d138f
xor ecx, ecx
lea edx, [ecx + 1]
jmp 0x49752c
lea eax, [esp + 0x88]
call fcn.0049af80
xor ecx, ecx
lea edx, [ecx + 1]
jmp 0x49752c
mov esi, dword [esp + 0x88]
mov ecx, dword [esi + 4]
push ecx
call fcn.0049deef
add esp, 4
push esi
call fcn.0049deef
add esp, 4
xor ecx, ecx
lea edx, [ecx + 1]
jmp 0x49752c
cmp dword [esp + 0x88], ecx
je 0x49752c
mov edx, dword [esp + 0x88]
push edx
call 0x4d7fb8
xor ecx, ecx
lea edx, [ecx + 1]
jmp 0x49752c
push eax
call 0x4d02f6
xor ecx, ecx
mov dword [esp + 0x2c], 0
lea edx, [ecx + 1]
jmp 0x497538
mov eax, dword [esp + 0x20]
cmp eax, ecx
je 0x497569
push eax
call dword [0x48242c]
mov eax, dword [esp + 0x20]
push eax
call fcn.0049deef
add esp, 4
xor ecx, ecx
lea edx, [ecx + 1]
jmp 0x497569
mov eax, dword [esp + 0x20]
cmp eax, ecx
je 0x497569
push eax
call 0x4d138f
xor ecx, ecx
lea edx, [ecx + 1]
jmp 0x497569
lea eax, [esp + 0x20]
call fcn.0049af80
xor ecx, ecx
lea edx, [ecx + 1]
jmp 0x497569
mov ecx, dword [esp + 0x20]
mov edx, dword [ecx + 4]
push edx
call fcn.0049deef
mov eax, dword [esp + 0x24]
add esp, 4
push eax
call fcn.0049deef
add esp, 4
xor ecx, ecx
lea edx, [ecx + 1]
jmp 0x497569
mov eax, dword [esp + 0x20]
cmp eax, ecx
je 0x497569
push eax
call 0x4d7fb8
xor ecx, ecx
lea edx, [ecx + 1]
jmp 0x497569
mov edx, dword [edi]
push edx
call fcn.0049deef
mov eax, dword [edi + 0xc]
add esp, 4
push eax
call fcn.0049deef
add esp, 4
jmp 0x4975c5
mov ecx, dword [esi]
test ecx, ecx
je 0x4975e1
push ecx
call dword [0x48242c]
mov ecx, dword [esi]
push ecx
call fcn.0049deef
add esp, 4
jmp 0x497605
mov eax, dword [esi]
test eax, eax
je 0x497605
push eax
call 0x4d138f
jmp 0x497605
mov eax, esi
call fcn.0049af80
jmp 0x497605
mov edx, dword [esi]
mov eax, dword [edx + 4]
push eax
call fcn.0049deef
mov ecx, dword [esi]
add esp, 4
push ecx
call fcn.0049deef
add esp, 4
jmp 0x497605
mov eax, dword [esi]
test eax, eax
je 0x497605
push eax
call 0x4d7fb8
jmp 0x497605
mov eax, dword [esp + 0x84]
push eax
push 0x70
mov ecx, dword [ebp + 8]
push ecx
call 0x4eb22e
lea esi, [esp + 0x20]
call fcn.00495ec0
lea ecx, [esp + 0x64]
call fcn.004c0e22
lea ecx, [esp + 0x30]
call fcn.0049d6e0
mov eax, 1
jmp 0x497631