Function at 0x4884b2
Capabilities:
Parse pe header

Disassembly:
push ebp
mov ebp, esp
push edi
push esi
push ebx
sub esp, 0x16c
mov dword [ebp - 0x28], 0
mov dword [ebp - 0x2c], 0
mov dword [ebp - 0xa0], 0
mov dword [ebp - 0x44], 0
mov dword [ebp - 0x4c], 0
mov dword [ebp - 0x50], 0xffffffff
mov dword [ebp - 0x60], 0
mov dword [ebp - 0x64], 0
mov dword [ebp - 0x68], 0
mov dword [ebp - 0x6c], 0
mov word [ebp - 0x6e], 0
mov dword [ebp - 0x12c], 0
mov dword [ebp - 0x74], 1
mov dword [ebp - 0xa4], 0
mov dword [ebp - 0x78], 0
mov dword [ebp - 0x7c], 0
mov dword [ebp - 0x80], 0
mov dword [ebp - 0x84], 0
mov dword [ebp - 0x88], 0
mov dword [ebp - 0x8c], 0
mov dword [ebp - 0x90], 0
mov dword [esp + 8], 8
mov dword [esp + 4], 0
lea eax, [ebp - 0xfc]
mov dword [esp], eax
call sub.msvcrt.dll_memset
mov eax, dword [ebp + 8]
mov eax, dword [eax]
mov dword [ebp - 0xa8], eax
mov eax, dword [ebp + 8]
mov eax, dword [eax + 0x24]
test eax, eax
jne 0x48a631
mov eax, dword [ebp - 0xa8]
movzx eax, byte [eax + 0x53]
test al, al
jne 0x48a631
mov eax, dword [ebp + 0xc]
mov dword [esp + 4], eax
mov eax, dword [ebp + 8]
mov dword [esp], eax
call fcn.00466266
mov dword [ebp - 0xac], eax
cmp dword [ebp - 0xac], 0
je 0x48a618
mov eax, dword [ebp - 0xac]
mov edx, dword [eax + 0x48]
mov eax, dword [ebp + 8]
mov eax, dword [eax]
mov dword [esp + 4], edx
mov dword [esp], eax
call fcn.00479078
mov dword [ebp - 0xb0], eax
lea eax, [ebp - 0x120]
mov dword [esp + 0x10], eax
mov eax, dword [ebp + 0x10]
mov dword [esp + 0xc], eax
mov dword [esp + 8], pe_nt_image_headers32
mov eax, dword [ebp - 0xac]
mov dword [esp + 4], eax
mov eax, dword [ebp + 8]
mov dword [esp], eax
call fcn.00486e91
mov dword [ebp - 0xb4], eax
mov eax, dword [ebp - 0xac]
mov eax, dword [eax + 0xc]
test eax, eax
setne al
movzx eax, al
mov dword [ebp - 0xb8], eax
mov eax, dword [ebp + 0xc]
mov eax, dword [eax]
cmp eax, 1
jle 0x48864f
mov eax, dword [ebp + 0x10]
mov eax, dword [eax]
jmp 0x488654
mov eax, 0
mov dword [ebp - 0xa4], eax
mov eax, dword [ebp - 0xac]
mov dword [esp + 4], eax
mov eax, dword [ebp + 8]
mov dword [esp], eax
call fcn.00460dfd
test eax, eax
jne 0x48a61b
mov eax, dword [ebp - 0x120]
mov dword [esp + 8], eax
mov eax, dword [ebp - 0xac]
mov dword [esp + 4], eax
mov eax, dword [ebp + 8]
mov dword [esp], eax
call fcn.0046638d
test eax, eax
jne 0x48a61e
mov eax, dword [ebp + 8]
mov eax, dword [eax + 0x28]
lea ecx, [eax + 1]
mov edx, dword [ebp + 8]
mov dword [edx + 0x28], ecx
mov dword [ebp - 0x3c], eax
mov eax, dword [ebp - 0x3c]
mov dword [ebp - 0xbc], eax
mov eax, dword [ebp - 0x3c]
add eax, 1
mov dword [ebp - 0x40], eax
mov eax, dword [ebp - 0xac]
mov eax, dword [eax + 0x24]
and eax, 0x80
test eax, eax
je 0x4886e4
mov eax, dword [ebp - 0xac]
mov dword [esp], eax
call fcn.0045dac2
jmp 0x4886e9
mov eax, 0
mov dword [ebp - 0xc0], eax
mov dword [ebp - 0x34], 0
mov eax, dword [ebp - 0xac]
mov eax, dword [eax + 8]
mov dword [ebp - 0x30], eax
jmp 0x488734
mov eax, dword [ebp - 0xc0]
cmp eax, dword [ebp - 0x30]
jne 0x488718
mov eax, dword [ebp + 8]
mov eax, dword [eax + 0x28]
mov dword [ebp - 0x3c], eax
mov eax, dword [ebp + 8]
mov eax, dword [eax + 0x28]
lea edx, [eax + 1]
mov eax, dword [ebp + 8]
mov dword [eax + 0x28], edx
mov eax, dword [ebp - 0x30]
mov eax, dword [eax + 0x14]
mov dword [ebp - 0x30], eax
add dword [ebp - 0x34], 1
cmp dword [ebp - 0x30], 0
jne 0x488704
cmp dword [ebp + 0x24], 0
je 0x48875e
mov eax, dword [ebp + 0x24]
mov eax, dword [eax + 0x28]
mov dword [ebp - 0x3c], eax
mov eax, dword [ebp + 0x24]
mov eax, dword [eax + 0x2c]
mov dword [ebp - 0x40], eax
mov eax, dword [ebp + 8]
mov edx, dword [ebp - 0xbc]
mov dword [eax + 0x28], edx
mov eax, dword [ebp + 0xc]
mov edx, dword [ebp - 0x3c]
mov dword [eax + 0x34], edx
mov eax, dword [ebp - 0xac]
movzx eax, word [eax + 0x2a]
movsx edx, ax
mov eax, dword [ebp - 0x34]
add eax, edx
add eax, 1
lea edx, [eax*4]
mov eax, dword [ebp - 0x34]
add eax, edx
add eax, 2
mov edx, 0
mov dword [esp + 4], eax
mov dword [esp + 8], edx
mov eax, dword [ebp - 0xa8]
mov dword [esp], eax
call fcn.004067e2
mov dword [ebp - 0x44], eax
cmp dword [ebp - 0x44], 0
je 0x48a621
mov eax, dword [ebp - 0xac]
movzx eax, word [eax + 0x2a]
cwde
lea edx, [eax*4]
mov eax, dword [ebp - 0x44]
add eax, edx
mov dword [ebp - 0xa0], eax
mov eax, dword [ebp - 0x34]
add eax, 1
lea edx, [eax*4]
mov eax, dword [ebp - 0xa0]
add eax, edx
mov dword [ebp - 0xc4], eax
mov eax, dword [ebp - 0x34]
add eax, 1
mov dword [esp + 8], eax
mov dword [esp + 4], 1
mov eax, dword [ebp - 0xc4]
mov dword [esp], eax
call sub.msvcrt.dll_memset
mov eax, dword [ebp - 0x34]
lea edx, [eax + 1]
mov eax, dword [ebp - 0xc4]
add eax, edx
mov byte [eax], 0
mov dword [ebp - 0x1c], 0
jmp 0x48883e
mov eax, dword [ebp - 0x1c]
lea edx, [eax*4]
mov eax, dword [ebp - 0x44]
add eax, edx
mov dword [eax], 0xffffffff
add dword [ebp - 0x1c], 1
mov eax, dword [ebp - 0xac]
movzx eax, word [eax + 0x2a]
cwde
cmp eax, dword [ebp - 0x1c]
jg 0x488825
mov dword [esp + 8], 0x20
mov dword [esp + 4], 0
lea eax, [ebp - 0x11c]
mov dword [esp], eax
call sub.msvcrt.dll_memset
mov eax, dword [ebp + 8]
mov dword [ebp - 0x11c], eax
mov eax, dword [ebp + 0xc]
mov dword [ebp - 0x118], eax
mov eax, dword [ebp + 0x24]
mov dword [ebp - 0x114], eax
mov dword [ebp - 0x104], 0x200
mov eax, dword [ebp + 8]
mov dword [esp], eax
call fcn.0047cfb4
mov dword [ebp - 0xc8], eax
cmp dword [ebp - 0xc8], 0
je 0x48a624
mov byte [ebp - 0x45], 0
movzx eax, byte [ebp - 0x45]
mov byte [ebp - 0x46], al
mov dword [ebp - 0x1c], 0
jmp 0x488b89
cmp dword [ebp - 0xa4], 0
jne 0x488900
mov ecx, dword [ebp + 0x10]
mov edx, dword [ebp - 0x1c]
mov eax, edx
shl eax, 2
add eax, edx
shl eax, 2
add eax, ecx
add eax, 4
mov eax, dword [eax]
mov dword [esp + 4], eax
lea eax, [ebp - 0x11c]
mov dword [esp], eax
call fcn.0044c175
test eax, eax
jne 0x48a627
mov dword [ebp - 0x20], 0
jmp 0x488a35
mov ecx, dword [ebp + 0x10]
mov edx, dword [ebp - 0x1c]
mov eax, edx
shl eax, 2
add eax, edx
shl eax, 2
add eax, ecx
add eax, 8
mov ecx, dword [eax]
mov eax, dword [ebp - 0xac]
mov edi, dword [eax + 4]
mov edx, dword [ebp - 0x20]
mov eax, edx
shl eax, 2
add eax, edx
shl eax, 2
add eax, edi
mov eax, dword [eax]
mov dword [esp + 4], ecx
mov dword [esp], eax
call fcn.0040a6d3
test eax, eax
jne 0x488a31
mov eax, dword [ebp - 0xac]
movzx eax, word [eax + 0x28]
cwde
cmp eax, dword [ebp - 0x20]
jne 0x48898a
mov byte [ebp - 0x46], 1
mov ecx, dword [ebp + 0x10]
mov edx, dword [ebp - 0x1c]
mov eax, edx
shl eax, 2
add eax, edx
shl eax, 2
add eax, ecx
add eax, 4
mov eax, dword [eax]
mov dword [ebp - 0x4c], eax
mov eax, dword [ebp - 0x1c]
mov dword [ebp - 0x50], eax
jmp 0x488a1b
cmp dword [ebp - 0xc0], 0
je 0x4889bf
mov eax, dword [ebp - 0xac]
mov ecx, dword [eax + 4]
mov edx, dword [ebp - 0x20]
mov eax, edx
shl eax, 2
add eax, edx
shl eax, 2
add eax, ecx
movzx eax, word [eax + 0x10]
movzx eax, ax
and eax, 1
test eax, eax
je 0x4889bf
mov byte [ebp - 0x45], 1
jmp 0x488a1b
mov eax, dword [ebp - 0xac]
mov ecx, dword [eax + 4]
mov edx, dword [ebp - 0x20]
mov eax, edx
shl eax, 2
add eax, edx
shl eax, 2
add eax, ecx
movzx eax, word [eax + 0x10]
movzx eax, ax
and eax, 0x60
test eax, eax
je 0x488a1b
mov eax, dword [ebp - 0xac]
mov ecx, dword [eax + 4]
mov edx, dword [ebp - 0x20]
mov eax, edx
shl eax, 2
add eax, edx
shl eax, 2
add eax, ecx
mov eax, dword [eax]
mov dword [esp + 8], eax
mov dword [esp + 4], str.cannot_UPDATE_generated_column___s_
mov eax, dword [ebp + 8]
mov dword [esp], eax
call fcn.0040a49d
jmp 0x48a631
mov eax, dword [ebp - 0x20]
lea edx, [eax*4]
mov eax, dword [ebp - 0x44]
add edx, eax
mov eax, dword [ebp - 0x1c]
mov dword [edx], eax
jmp 0x488a49
add dword [ebp - 0x20], 1
mov eax, dword [ebp - 0xac]
movzx eax, word [eax + 0x2a]
cwde
cmp eax, dword [ebp - 0x20]
jg 0x48890c
mov eax, dword [ebp - 0xac]
movzx eax, word [eax + 0x2a]
cwde
cmp eax, dword [ebp - 0x20]
jg 0x488af0
cmp dword [ebp - 0xc0], 0
jne 0x488ab6
mov ecx, dword [ebp + 0x10]
mov edx, dword [ebp - 0x1c]
mov eax, edx
shl eax, 2
add eax, edx
shl eax, 2
add eax, ecx
add eax, 8
mov eax, dword [eax]
mov dword [esp], eax
call fcn.0044f993
test eax, eax
je 0x488ab6
mov dword [ebp - 0x20], 0xffffffff
mov byte [ebp - 0x46], 1
mov ecx, dword [ebp + 0x10]
mov edx, dword [ebp - 0x1c]
mov eax, edx
shl eax, 2
add eax, edx
shl eax, 2
add eax, ecx
add eax, 4
mov eax, dword [eax]
mov dword [ebp - 0x4c], eax
mov eax, dword [ebp - 0x1c]
mov dword [ebp - 0x50], eax
jmp 0x488af0
mov ecx, dword [ebp + 0x10]
mov edx, dword [ebp - 0x1c]
mov eax, edx
shl eax, 2
add eax, edx
shl eax, 2
add eax, ecx
add eax, 8
mov eax, dword [eax]
mov dword [esp + 8], eax
mov dword [esp + 4], str.no_such_column:__s
mov eax, dword [ebp + 8]
mov dword [esp], eax
call fcn.0040a49d
mov eax, dword [ebp + 8]
mov byte [eax + 0x11], 1
jmp 0x48a631
mov eax, dword [ebp - 0xa8]
mov eax, dword [eax + 0x10]
mov edx, dword [ebp - 0xb0]
shl edx, 4
add eax, edx
mov ecx, dword [eax]
cmp dword [ebp - 0x20], 0
js 0x488b28
mov eax, dword [ebp - 0xac]
mov edi, dword [eax + 4]
mov edx, dword [ebp - 0x20]
mov eax, edx
shl eax, 2
add eax, edx
shl eax, 2
add eax, edi
mov eax, dword [eax]
jmp 0x488b2d
mov eax, str.ROWID
mov edx, dword [ebp - 0xac]
mov edx, dword [edx]
mov dword [esp + 0x10], ecx
mov dword [esp + 0xc], eax
mov dword [esp + 8], edx
mov dword [esp + 4], 0x17
mov eax, dword [ebp + 8]
mov dword [esp], eax
call fcn.0045c22e
mov dword [ebp - 0xcc], eax
cmp dword [ebp - 0xcc], 1
je 0x48a62a
cmp dword [ebp - 0xcc], 2
jne 0x488b85
mov eax, dword [ebp - 0x20]
lea edx, [eax*4]
mov eax, dword [ebp - 0x44]
add eax, edx
mov dword [eax], 0xffffffff
add dword [ebp - 0x1c], 1
mov eax, dword [ebp + 0x10]
mov eax, dword [eax]
cmp eax, dword [ebp - 0x1c]
jg 0x4888c6
movzx edx, byte [ebp - 0x46]
movzx eax, byte [ebp - 0x45]
add eax, edx
mov byte [ebp - 0xcd], al
mov eax, dword [ebp - 0xac]
mov eax, dword [eax + 0x24]
and eax, 0x60
test eax, eax
je 0x488c8c
mov dword [ebp - 0x94], 0
mov dword [ebp - 0x1c], 0
jmp 0x488c6b
mov eax, dword [ebp - 0x1c]
lea edx, [eax*4]
mov eax, dword [ebp - 0x44]
add eax, edx
mov eax, dword [eax]
test eax, eax
jns 0x488c63
mov eax, dword [ebp - 0xac]
mov ecx, dword [eax + 4]
mov edx, dword [ebp - 0x1c]
mov eax, edx
shl eax, 2
add eax, edx
shl eax, 2
add eax, ecx
movzx eax, word [eax + 0x10]
movzx eax, ax
and eax, 0x60
test eax, eax
je 0x488c66
movzx ecx, byte [ebp - 0x46]
mov eax, dword [ebp - 0xac]
mov edi, dword [eax + 4]
mov edx, dword [ebp - 0x1c]
mov eax, edx
shl eax, 2
add eax, edx
shl eax, 2
add eax, edi
mov eax, dword [eax + 4]
mov dword [esp + 8], ecx
mov edx, dword [ebp - 0x44]
mov dword [esp + 4], edx
mov dword [esp], eax
call fcn.0046f48b
test eax, eax
je 0x488c67
mov eax, dword [ebp - 0x1c]
lea edx, [eax*4]
mov eax, dword [ebp - 0x44]
add eax, edx
mov dword [eax], 0x1869f
mov dword [ebp - 0x94], 1
jmp 0x488c67
nop
jmp 0x488c67
nop
add dword [ebp - 0x1c], 1
mov eax, dword [ebp - 0xac]
movzx eax, word [eax + 0x2a]
cwde
cmp eax, dword [ebp - 0x1c]
jg 0x488bd1
cmp dword [ebp - 0x94], 0
jne 0x488bbb
mov eax, dword [ebp - 0xac]
mov eax, dword [eax + 0x38]
test eax, eax
je 0x488ca5
mov eax, 0xffffffff
mov edx, 0xffffffff
jmp 0x488caf
mov eax, 0
mov edx, 0
mov ecx, dword [ebp + 0xc]
mov dword [ecx + 0x40], eax
mov dword [ecx + 0x44], edx
movzx eax, byte [ebp - 0xcd]
mov dword [esp + 0xc], eax
mov eax, dword [ebp - 0x44]
mov dword [esp + 8], eax
mov eax, dword [ebp - 0xac]
mov dword [esp + 4], eax
mov eax, dword [ebp + 8]
mov dword [esp], eax
call fcn.0046c4df
mov dword [ebp - 0xd4], eax
cmp dword [ebp + 0x18], 5
jne 0x488cf5
mov dword [ebp - 0x12c], 1
mov dword [ebp - 0x38], 0
mov eax, dword [ebp - 0xac]
mov eax, dword [eax + 8]
mov dword [ebp - 0x30], eax
jmp 0x488e63
cmp byte [ebp - 0xcd], 0
jne 0x488d48
cmp dword [ebp - 0xd4], 1
jg 0x488d48
mov eax, dword [ebp - 0x30]
cmp eax, dword [ebp - 0xc0]
je 0x488d48
movzx eax, byte [ebp - 0x46]
mov dword [esp + 8], eax
mov eax, dword [ebp - 0x44]
mov dword [esp + 4], eax
mov eax, dword [ebp - 0x30]
mov dword [esp], eax
call fcn.0048815d
test eax, eax
je 0x488d80
mov eax, dword [ebp + 8]
mov eax, dword [eax + 0x2c]
lea edx, [eax + 1]
mov eax, dword [ebp + 8]
mov dword [eax + 0x2c], edx
mov eax, dword [ebp + 8]
mov eax, dword [eax + 0x2c]
mov dword [ebp - 0x98], eax
mov eax, dword [ebp + 8]
mov edx, dword [eax + 0x2c]
mov eax, dword [ebp - 0x30]
movzx eax, word [eax + 0x34]
movzx eax, ax
add edx, eax
mov eax, dword [ebp + 8]
mov dword [eax + 0x2c], edx
jmp 0x488e22
mov dword [ebp - 0x98], 0
mov dword [ebp - 0x1c], 0
jmp 0x488e0c
movzx eax, byte [ebp - 0x46]
mov dword [esp + 0xc], eax
mov eax, dword [ebp - 0x44]
mov dword [esp + 8], eax
mov eax, dword [ebp - 0x1c]
mov dword [esp + 4], eax
mov eax, dword [ebp - 0x30]
mov dword [esp], eax
call fcn.004880ee
test eax, eax
je 0x488e08
mov eax, dword [ebp + 8]
mov eax, dword [eax + 0x2c]
lea edx, [eax + 1]
mov eax, dword [ebp + 8]
mov dword [eax + 0x2c], edx
mov eax, dword [ebp + 8]
mov eax, dword [eax + 0x2c]
mov dword [ebp - 0x98], eax
mov eax, dword [ebp + 8]
mov edx, dword [eax + 0x2c]
mov eax, dword [ebp - 0x30]
movzx eax, word [eax + 0x34]
movzx eax, ax
add edx, eax
mov eax, dword [ebp + 8]
mov dword [eax + 0x2c], edx
cmp dword [ebp + 0x18], 0xb
jne 0x488e21
mov eax, dword [ebp - 0x30]
movzx eax, byte [eax + 0x36]
cmp al, 5
jne 0x488e21
mov dword [ebp - 0x12c], 1
jmp 0x488e21
add dword [ebp - 0x1c], 1
mov eax, dword [ebp - 0x30]
movzx eax, word [eax + 0x32]
movzx eax, ax
cmp eax, dword [ebp - 0x1c]
jg 0x488d93
jmp 0x488e22
nop
cmp dword [ebp - 0x98], 0
jne 0x488e3c
mov eax, dword [ebp - 0x38]
lea edx, [eax + 1]
mov eax, dword [ebp - 0xc4]
add eax, edx
mov byte [eax], 0
mov eax, dword [ebp - 0x38]
lea edx, [eax*4]
mov eax, dword [ebp - 0xa0]
add edx, eax
mov eax, dword [ebp - 0x98]
mov dword [edx], eax
mov eax, dword [ebp - 0x30]
mov eax, dword [eax + 0x14]
mov dword [ebp - 0x30], eax
add dword [ebp - 0x38], 1
cmp dword [ebp - 0x30], 0
jne 0x488d0d
mov eax, dword [ebp - 0x38]
lea edx, [eax*4]
mov eax, dword [ebp - 0xa0]
add edx, eax
mov eax, dword [ebp + 8]
mov eax, dword [eax + 0x2c]
lea ecx, [eax + 1]
mov eax, dword [ebp + 8]
mov dword [eax + 0x2c], ecx
mov eax, dword [ebp + 8]
mov eax, dword [eax + 0x2c]
mov dword [edx], eax
mov eax, dword [ebp - 0x12c]
test eax, eax
je 0x488ec0
mov eax, dword [ebp - 0x34]
add eax, 1
mov dword [esp + 8], eax
mov dword [esp + 4], 1
mov eax, dword [ebp - 0xc4]
mov dword [esp], eax
call sub.msvcrt.dll_memset
mov eax, dword [ebp + 8]
movzx eax, byte [eax + 0x12]
test al, al
jne 0x488ed9
mov eax, dword [ebp - 0xc8]
mov dword [esp], eax
call fcn.00437303
cmp dword [ebp - 0xb4], 0
jne 0x488eeb
cmp dword [ebp - 0xd4], 0
je 0x488ef2
mov edx, 1
jmp 0x488ef7
mov edx, 0
mov eax, dword [ebp - 0xb0]
mov dword [esp + 8], eax
mov dword [esp + 4], edx
mov eax, dword [ebp + 8]
mov dword [esp], eax
call fcn.00464b91
mov eax, dword [ebp - 0xac]
mov eax, dword [eax + 0x38]
test eax, eax
jne 0x488ff4
mov eax, dword [ebp - 0x38]
lea edx, [eax*4]
mov eax, dword [ebp - 0xa0]
add eax, edx
mov eax, dword [eax]
mov dword [ebp - 0x8c], eax
mov eax, dword [ebp + 8]
mov eax, dword [eax + 0x2c]
lea edx, [eax + 1]
mov eax, dword [ebp + 8]
mov dword [eax + 0x2c], edx
mov eax, dword [ebp + 8]
mov eax, dword [eax + 0x2c]
mov dword [ebp - 0x80], eax
mov eax, dword [ebp - 0x80]
mov dword [ebp - 0x7c], eax
cmp byte [ebp - 0x45], 0
jne 0x488f71
cmp dword [ebp - 0xb4], 0
jne 0x488f71
cmp dword [ebp - 0xd4], 0
je 0x488f99
mov eax, dword [ebp + 8]
mov eax, dword [eax + 0x2c]
add eax, 1
mov dword [ebp - 0x88], eax
mov eax, dword [ebp + 8]
mov edx, dword [eax + 0x2c]
mov eax, dword [ebp - 0xac]
movzx eax, word [eax + 0x2a]
cwde
add edx, eax
mov eax, dword [ebp + 8]
mov dword [eax + 0x2c], edx
cmp byte [ebp - 0xcd], 0
jne 0x488fb4
cmp dword [ebp - 0xb4], 0
jne 0x488fb4
cmp dword [ebp - 0xd4], 0
je 0x488fcc
mov eax, dword [ebp + 8]
mov eax, dword [eax + 0x2c]
lea edx, [eax + 1]
mov eax, dword [ebp + 8]
mov dword [eax + 0x2c], edx
mov eax, dword [ebp + 8]
mov eax, dword [eax + 0x2c]
mov dword [ebp - 0x80], eax
mov eax, dword [ebp + 8]
mov eax, dword [eax + 0x2c]
add eax, 1
mov dword [ebp - 0x84], eax
mov eax, dword [ebp + 8]
mov edx, dword [eax + 0x2c]
mov eax, dword [ebp - 0xac]
movzx eax, word [eax + 0x2a]
cwde
add edx, eax
mov eax, dword [ebp + 8]
mov dword [eax + 0x2c], edx
cmp dword [ebp - 0xb8], 0
je 0x48901e
mov eax, dword [ebp - 0xac]
mov eax, dword [eax]
mov dword [esp + 8], eax
lea eax, [ebp - 0xfc]
mov dword [esp + 4], eax
mov eax, dword [ebp + 8]
mov dword [esp], eax
call fcn.0045c2fa
cmp dword [ebp - 0xa4], 0
jne 0x48906f
cmp dword [ebp - 0xb8], 0
je 0x48906f
mov eax, dword [ebp - 0x3c]
mov dword [esp + 0x14], eax
mov eax, dword [ebp + 0x20]
mov dword [esp + 0x10], eax
mov eax, dword [ebp + 0x1c]
mov dword [esp + 0xc], eax
mov eax, dword [ebp + 0x14]
mov dword [esp + 8], eax
mov eax, dword [ebp - 0xac]
mov dword [esp + 4], eax
mov eax, dword [ebp + 8]
mov dword [esp], eax
call fcn.00466406
mov dword [ebp + 0x1c], 0
mov dword [ebp + 0x20], 0
cmp dword [ebp - 0xa4], 0
jne 0x489095
mov eax, dword [ebp + 0x14]
mov dword [esp + 4], eax
lea eax, [ebp - 0x11c]
mov dword [esp], eax
call fcn.0044c175
test eax, eax
jne 0x48a62d
mov eax, dword [ebp - 0xac]
mov eax, dword [eax + 0x38]
test eax, eax
je 0x4890e6
mov eax, dword [ebp + 0x18]
mov dword [esp + 0x1c], eax
mov eax, dword [ebp + 0x14]
mov dword [esp + 0x18], eax
mov eax, dword [ebp - 0x44]
mov dword [esp + 0x14], eax
mov eax, dword [ebp - 0x4c]
mov dword [esp + 0x10], eax
mov eax, dword [ebp + 0x10]
mov dword [esp + 0xc], eax
mov eax, dword [ebp - 0xac]
mov dword [esp + 8], eax
mov eax, dword [ebp + 0xc]
mov dword [esp + 4], eax
mov eax, dword [ebp + 8]
mov dword [esp], eax
call fcn.0048a69f
jmp 0x48a631
mov eax, dword [ebp + 8]
mov dword [esp], eax
call fcn.00431f35
mov dword [ebp - 0xd8], eax
mov eax, dword [ebp - 0xd8]
mov dword [ebp - 0x58], eax
mov eax, dword [ebp - 0xa8]
mov edx, dword [eax + 0x24]
mov eax, dword [eax + 0x20]
mov edi, eax
and edi, 0
mov ebx, edi
mov eax, edx
and eax, 1
mov esi, eax
mov eax, esi
or eax, ebx
test eax, eax
je 0x489188
mov eax, dword [ebp + 8]
mov eax, dword [eax + 0x78]
test eax, eax
jne 0x489188
mov eax, dword [ebp + 8]
movzx eax, byte [eax + 0x12]
test al, al
jne 0x489188
mov eax, dword [ebp + 8]
movzx eax, byte [eax + 0x91]
test al, al
jne 0x489188
cmp dword [ebp + 0x24], 0
jne 0x489188
mov eax, dword [ebp + 8]
mov eax, dword [eax + 0x2c]
lea edx, [eax + 1]
mov eax, dword [ebp + 8]
mov dword [eax + 0x2c], edx
mov eax, dword [ebp + 8]
mov eax, dword [eax + 0x2c]
mov dword [ebp - 0x78], eax
mov eax, dword [ebp - 0x78]
mov dword [esp + 0xc], eax
mov dword [esp + 8], 0
mov dword [esp + 4], 0x45
mov eax, dword [ebp - 0xc8]
mov dword [esp], eax
call fcn.00431991
cmp dword [ebp - 0xa4], 0
jne 0x48921f
mov eax, dword [ebp - 0xac]
mov eax, dword [eax + 0x24]
and eax, 0x80
test eax, eax
jne 0x48921f
mov eax, dword [ebp - 0x7c]
mov dword [esp + 0x10], eax
mov eax, dword [ebp - 0x8c]
mov dword [esp + 0xc], eax
mov dword [esp + 8], 0
mov dword [esp + 4], 0x48
mov eax, dword [ebp - 0xc8]
mov dword [esp], eax
call fcn.00431880
mov eax, dword [ebp + 8]
mov eax, dword [eax + 0x28]
lea ecx, [eax + 1]
mov edx, dword [ebp + 8]
mov dword [edx + 0x28], ecx
mov dword [ebp - 0x60], eax
mov eax, dword [ebp - 0x8c]
mov dword [esp + 0x10], eax
mov dword [esp + 0xc], 0
mov eax, dword [ebp - 0x60]
mov dword [esp + 8], eax
mov dword [esp + 4], 0x65
mov eax, dword [ebp - 0xc8]
mov dword [esp], eax
call fcn.00431880
mov dword [ebp - 0x68], eax
jmp 0x4893f3
cmp dword [ebp - 0xc0], 0
je 0x489234
mov eax, dword [ebp - 0xc0]
movzx eax, word [eax + 0x32]
jmp 0x489239
mov eax, 0
mov word [ebp - 0x6e], ax
mov eax, dword [ebp + 8]
mov eax, dword [eax + 0x2c]
add eax, 1
mov dword [ebp - 0x6c], eax
mov eax, dword [ebp + 8]
mov edx, dword [eax + 0x2c]
movsx eax, word [ebp - 0x6e]
add edx, eax
mov eax, dword [ebp + 8]
mov dword [eax + 0x2c], edx
mov eax, dword [ebp + 8]
mov edx, dword [eax + 0x2c]
mov eax, dword [ebp - 0xa4]
add edx, eax
mov eax, dword [ebp + 8]
mov dword [eax + 0x2c], edx
mov eax, dword [ebp + 8]
mov eax, dword [eax + 0x2c]
lea edx, [eax + 1]
mov eax, dword [ebp + 8]
mov dword [eax + 0x2c], edx
mov eax, dword [ebp + 8]
mov eax, dword [eax + 0x2c]
mov dword [ebp - 0x90], eax
cmp dword [ebp + 0x24], 0
jne 0x4893f3
movsx edx, word [ebp - 0x6e]
mov eax, dword [ebp - 0xa4]
add edx, eax
cmp dword [ebp - 0xb8], 0
je 0x4892b6
mov eax, dword [ebp - 0xac]
movzx eax, word [eax + 0x2a]
cwde
jmp 0x4892bb
mov eax, 0
add eax, edx
mov dword [ebp - 0xdc], eax
mov eax, dword [ebp + 8]
mov eax, dword [eax + 0x28]
lea ecx, [eax + 1]
mov edx, dword [ebp + 8]
mov dword [edx + 0x28], ecx
mov dword [ebp - 0x60], eax
cmp dword [ebp - 0xc0], 0
je 0x489313
movsx edx, word [ebp - 0x6e]
mov eax, dword [ebp - 0x6c]
add eax, edx
sub eax, 1
mov dword [esp + 0x10], eax
mov eax, dword [ebp - 0x6c]
mov dword [esp + 0xc], eax
mov dword [esp + 8], 0
mov dword [esp + 4], 0x48
mov eax, dword [ebp - 0xc8]
mov dword [esp], eax
call fcn.00431880
mov eax, dword [ebp - 0xdc]
mov dword [esp + 0xc], eax
mov eax, dword [ebp - 0x60]
mov dword [esp + 8], eax
mov dword [esp + 4], 0x65
mov eax, dword [ebp - 0xc8]
mov dword [esp], eax
call fcn.00431991
mov dword [ebp - 0x68], eax
cmp dword [ebp - 0xc0], 0
je 0x48939c
mov eax, dword [ebp - 0xc0]
mov dword [esp + 4], eax
mov eax, dword [ebp + 8]
mov dword [esp], eax
call fcn.0046528d
mov dword [ebp - 0xe0], eax
cmp dword [ebp - 0xe0], 0
je 0x48939c
mov eax, dword [ebp - 0xdc]
mov edx, eax
mov eax, dword [ebp - 0xe0]
mov word [eax + 8], dx
mov dword [esp + 8], 0xfffffff7
mov eax, dword [ebp - 0xe0]
mov dword [esp + 4], eax
mov eax, dword [ebp - 0xc8]
mov dword [esp], eax
call fcn.00432951
cmp dword [ebp - 0xa4], 0
je 0x4893f3
mov eax, dword [ebp + 0x20]
mov dword [esp + 0x1c], eax
mov eax, dword [ebp + 0x1c]
mov dword [esp + 0x18], eax
mov eax, dword [ebp + 0x14]
mov dword [esp + 0x14], eax
mov eax, dword [ebp + 0xc]
mov dword [esp + 0x10], eax
mov eax, dword [ebp + 0x10]
mov dword [esp + 0xc], eax
mov eax, dword [ebp - 0xc0]
mov dword [esp + 8], eax
mov eax, dword [ebp - 0x60]
mov dword [esp + 4], eax
mov eax, dword [ebp + 8]
mov dword [esp], eax
call fcn.004881d8
cmp dword [ebp - 0xb8], 0
je 0x4893f3
mov eax, dword [ebp - 0x60]
mov dword [ebp - 0x3c], eax
cmp dword [ebp - 0xa4], 0
je 0x489423
mov eax, dword [ebp + 8]
mov dword [esp], eax
call fcn.00464bfb
mov dword [ebp - 0x54], 0
movsx eax, word [ebp - 0x6e]
mov dword [ebp - 0x64], eax
mov eax, dword [ebp - 0x6c]
mov dword [ebp - 0x90], eax
jmp 0x489744
cmp dword [ebp + 0x24], 0
je 0x489467
mov dword [ebp - 0x2c], 0
mov dword [ebp - 0x54], 1
mov dword [esp + 0xc], 0x10
mov eax, dword [ebp - 0xd8]
mov dword [esp + 8], eax
mov eax, dword [ebp + 0x14]
mov dword [esp + 4], eax
mov eax, dword [ebp + 8]
mov dword [esp], eax
call fcn.0045429e
mov dword [ebp - 0x74], 0
jmp 0x48956a
mov dword [ebp - 0x5c], 4
mov eax, dword [ebp + 8]
movzx eax, byte [eax + 0x12]
test al, al
jne 0x4894a2
cmp dword [ebp - 0xb4], 0
jne 0x4894a2
cmp dword [ebp - 0xd4], 0
jne 0x4894a2
cmp byte [ebp - 0xcd], 0
jne 0x4894a2
mov eax, dword [ebp - 0x12c]
test eax, eax
jne 0x4894a2
or dword [ebp - 0x5c], 8
mov eax, dword [ebp - 0x5c]
movzx eax, ax
mov edx, dword [ebp - 0x40]
mov dword [esp + 0x18], edx
mov dword [esp + 0x14], eax
mov dword [esp + 0x10], 0
mov dword [esp + 0xc], 0
mov eax, dword [ebp + 0x14]
mov dword [esp + 8], eax
mov eax, dword [ebp + 0xc]
mov dword [esp + 4], eax
mov eax, dword [ebp + 8]
mov dword [esp], eax
call fcn.0049cd7d
mov dword [ebp - 0x2c], eax
cmp dword [ebp - 0x2c], 0
je 0x48a630
lea eax, [ebp - 0x128]
mov dword [esp + 4], eax
mov eax, dword [ebp - 0x2c]
mov dword [esp], eax
call fcn.00495e04
mov dword [ebp - 0x54], eax
mov eax, dword [ebp - 0x2c]
mov dword [esp], eax
call fcn.00495e26
mov dword [ebp - 0x74], eax
cmp dword [ebp - 0x54], 1
je 0x48956a
mov eax, dword [ebp + 8]
mov dword [esp], eax
call fcn.00464bfb
cmp dword [ebp - 0x54], 2
jne 0x48956a
mov eax, dword [ebp - 0x124]
mov dword [ebp - 0xe4], eax
cmp dword [ebp - 0xe4], 0
js 0x48956a
mov eax, dword [ebp - 0xe4]
cmp eax, dword [ebp - 0x3c]
je 0x48956a
mov eax, dword [ebp - 0xe4]
sub eax, dword [ebp - 0xbc]
mov edx, eax
mov eax, dword [ebp - 0xc4]
add eax, edx
movzx eax, byte [eax]
test al, al
je 0x48956a
mov dword [ebp - 0x54], 0
mov eax, dword [ebp - 0xac]
mov eax, dword [eax + 0x24]
and eax, 0x80
test eax, eax
jne 0x48962a
mov eax, dword [ebp - 0x7c]
mov dword [esp + 0xc], eax
mov eax, dword [ebp - 0x3c]
mov dword [esp + 8], eax
mov dword [esp + 4], 0x82
mov eax, dword [ebp - 0xc8]
mov dword [esp], eax
call fcn.00431991
cmp dword [ebp - 0x54], 0
jne 0x489606
mov eax, dword [ebp - 0x38]
lea edx, [eax*4]
mov eax, dword [ebp - 0xa0]
add edx, eax
mov eax, dword [ebp + 8]
mov eax, dword [eax + 0x2c]
lea ecx, [eax + 1]
mov eax, dword [ebp + 8]
mov dword [eax + 0x2c], ecx
mov eax, dword [ebp + 8]
mov eax, dword [eax + 0x2c]
mov dword [edx], eax
mov eax, dword [ebp - 0x7c]
mov dword [esp + 0x10], eax
mov eax, dword [ebp - 0x8c]
mov dword [esp + 0xc], eax
mov eax, dword [ebp - 0x60]
mov dword [esp + 8], eax
mov dword [esp + 4], 0x7b
mov eax, dword [ebp - 0xc8]
mov dword [esp], eax
call fcn.00431880
jmp 0x489744
cmp dword [ebp - 0x68], 0
je 0x489744
mov eax, dword [ebp - 0x68]
mov dword [esp + 4], eax
mov eax, dword [ebp - 0xc8]
mov dword [esp], eax
call fcn.004326cb
jmp 0x489744
mov dword [ebp - 0x1c], 0
jmp 0x48967a
mov edx, dword [ebp - 0x6c]
mov eax, dword [ebp - 0x1c]
add edx, eax
mov eax, dword [ebp - 0xc0]
mov eax, dword [eax + 4]
mov ecx, dword [ebp - 0x1c]
add ecx, ecx
add eax, ecx
movzx eax, word [eax]
cwde
mov dword [esp + 0x10], edx
mov dword [esp + 0xc], eax
mov eax, dword [ebp - 0x3c]
mov dword [esp + 8], eax
mov eax, dword [ebp - 0xac]
mov dword [esp + 4], eax
mov eax, dword [ebp - 0xc8]
mov dword [esp], eax
call fcn.00451999
add dword [ebp - 0x1c], 1
movsx eax, word [ebp - 0x6e]
cmp eax, dword [ebp - 0x1c]
jg 0x489633
cmp dword [ebp - 0x54], 0
je 0x4896b9
cmp dword [ebp - 0x68], 0
je 0x4896a4
mov eax, dword [ebp - 0x68]
mov dword [esp + 4], eax
mov eax, dword [ebp - 0xc8]
mov dword [esp], eax
call fcn.004326cb
movsx eax, word [ebp - 0x6e]
mov dword [ebp - 0x64], eax
mov eax, dword [ebp - 0x6c]
mov dword [ebp - 0x90], eax
jmp 0x489744
movsx ebx, word [ebp - 0x6e]
mov eax, dword [ebp - 0xc0]
mov dword [esp + 4], eax
mov eax, dword [ebp - 0xa8]
mov dword [esp], eax
call fcn.0046d138
mov edx, eax
movsx eax, word [ebp - 0x6e]
mov dword [esp + 0x18], ebx
mov dword [esp + 0x14], edx
mov edx, dword [ebp - 0x90]
mov dword [esp + 0x10], edx
mov dword [esp + 0xc], eax
mov eax, dword [ebp - 0x6c]
mov dword [esp + 8], eax
mov dword [esp + 4], 0x5c
mov eax, dword [ebp - 0xc8]
mov dword [esp], eax
call fcn.00431b26
movsx eax, word [ebp - 0x6e]
mov dword [esp + 0x14], eax
mov eax, dword [ebp - 0x6c]
mov dword [esp + 0x10], eax
mov eax, dword [ebp - 0x90]
mov dword [esp + 0xc], eax
mov eax, dword [ebp - 0x60]
mov dword [esp + 8], eax
mov dword [esp + 4], 0x85
mov eax, dword [ebp - 0xc8]
mov dword [esp], eax
call fcn.00431e91
cmp dword [ebp + 0x24], 0
jne 0x489b5f
cmp dword [ebp - 0xa4], 0
jne 0x489768
cmp dword [ebp - 0x54], 2
je 0x489768
mov eax, dword [ebp - 0x2c]
mov dword [esp], eax
call fcn.0049dcca
cmp dword [ebp - 0xb8], 0
jne 0x489870
mov dword [ebp - 0x9c], 0
cmp dword [ebp - 0x54], 0
je 0x4897cb
mov eax, dword [ebp - 0x128]
test eax, eax
js 0x4897a8
mov eax, dword [ebp - 0x128]
sub eax, dword [ebp - 0xbc]
mov edx, eax
mov eax, dword [ebp - 0xc4]
add eax, edx
mov byte [eax], 0
mov eax, dword [ebp - 0x124]
test eax, eax
js 0x4897cb
mov eax, dword [ebp - 0x124]
sub eax, dword [ebp - 0xbc]
mov edx, eax
mov eax, dword [ebp - 0xc4]
add eax, edx
mov byte [eax], 0
cmp dword [ebp - 0x54], 2
jne 0x489806
mov eax, dword [ebp - 0x124]
not eax
shr eax, 0x1f
movzx eax, al
mov edx, dword [ebp - 0x34]
sub edx, eax
mov eax, edx
test eax, eax
jle 0x489806
mov dword [esp + 4], 0x11
mov eax, dword [ebp - 0xc8]
mov dword [esp], eax
call fcn.0043192e
mov dword [ebp - 0x9c], eax
mov dword [esp + 0x1c], 0
mov dword [esp + 0x18], 0
mov eax, dword [ebp - 0xc4]
mov dword [esp + 0x14], eax
mov eax, dword [ebp - 0xbc]
mov dword [esp + 0x10], eax
mov dword [esp + 0xc], 0
mov dword [esp + 8], 0x62
mov eax, dword [ebp - 0xac]
mov dword [esp + 4], eax
mov eax, dword [ebp + 8]
mov dword [esp], eax
call fcn.00471227
cmp dword [ebp - 0x9c], 0
je 0x489870
mov eax, dword [ebp - 0x9c]
mov dword [esp + 4], eax
mov eax, dword [ebp - 0xc8]
mov dword [esp], eax
call fcn.00432483
cmp dword [ebp - 0x54], 0
je 0x489922
cmp dword [ebp - 0xb8], 0
jne 0x4898d1
mov eax, dword [ebp - 0x128]
cmp eax, dword [ebp - 0x3c]
je 0x4898d1
mov eax, dword [ebp - 0x124]
cmp eax, dword [ebp - 0x3c]
je 0x4898d1
mov eax, dword [ebp - 0x64]
mov dword [esp + 0x14], eax
mov eax, dword [ebp - 0x90]
mov dword [esp + 0x10], eax
mov eax, dword [ebp - 0xd8]
mov dword [esp + 0xc], eax
mov eax, dword [ebp - 0x3c]
mov dword [esp + 8], eax
mov dword [esp + 4], 0x1d
mov eax, dword [ebp - 0xc8]
mov dword [esp], eax
call fcn.00431e91
cmp dword [ebp - 0x54], 1
je 0x4898e5
mov eax, dword [ebp + 8]
mov dword [esp], eax
call fcn.00431f35
mov dword [ebp - 0x58], eax
cmp dword [ebp - 0xc0], 0
je 0x4898f6
mov eax, dword [ebp - 0x90]
jmp 0x4898f9
mov eax, dword [ebp - 0x7c]
mov edx, dword [ebp - 0xd8]
mov dword [esp + 0xc], edx
mov dword [esp + 8], eax
mov dword [esp + 4], 0x32
mov eax, dword [ebp - 0xc8]
mov dword [esp], eax
call fcn.00431991
jmp 0x489b5f
cmp dword [ebp - 0xc0], 0
jne 0x489938
cmp dword [ebp - 0xa4], 0
je 0x489ad5
mov eax, dword [ebp + 8]
mov dword [esp], eax
call fcn.00431f35
mov dword [ebp - 0x58], eax
mov eax, dword [ebp - 0xd8]
mov dword [esp + 0xc], eax
mov eax, dword [ebp - 0x60]
mov dword [esp + 8], eax
mov dword [esp + 4], 0x25
mov eax, dword [ebp - 0xc8]
mov dword [esp], eax
call fcn.00431991
mov eax, dword [ebp - 0xc8]
mov dword [esp], eax
call fcn.00432221
mov dword [ebp - 0x28], eax
cmp dword [ebp - 0xa4], 0
je 0x489a73
cmp dword [ebp - 0xb8], 0
jne 0x489b5e
cmp dword [ebp - 0xc0], 0
je 0x489a1f
mov dword [ebp - 0x1c], 0
jmp 0x4899de
mov edx, dword [ebp - 0x6c]
mov eax, dword [ebp - 0x1c]
add eax, edx
mov dword [esp + 0x10], eax
mov eax, dword [ebp - 0x1c]
mov dword [esp + 0xc], eax
mov eax, dword [ebp - 0x60]
mov dword [esp + 8], eax
mov dword [esp + 4], 0x5a
mov eax, dword [ebp - 0xc8]
mov dword [esp], eax
call fcn.00431880
add dword [ebp - 0x1c], 1
movsx eax, word [ebp - 0x6e]
cmp eax, dword [ebp - 0x1c]
jg 0x4899aa
movsx eax, word [ebp - 0x6e]
mov dword [esp + 0x14], eax
mov eax, dword [ebp - 0x6c]
mov dword [esp + 0x10], eax
mov eax, dword [ebp - 0x58]
mov dword [esp + 0xc], eax
mov eax, dword [ebp - 0x3c]
mov dword [esp + 8], eax
mov dword [esp + 4], 0x1d
mov eax, dword [ebp - 0xc8]
mov dword [esp], eax
call fcn.00431e91
jmp 0x489b5e
mov eax, dword [ebp - 0x7c]
mov dword [esp + 0xc], eax
mov eax, dword [ebp - 0x60]
mov dword [esp + 8], eax
mov dword [esp + 4], 0x82
mov eax, dword [ebp - 0xc8]
mov dword [esp], eax
call fcn.00431991
mov eax, dword [ebp - 0x7c]
mov dword [esp + 0x10], eax
mov eax, dword [ebp - 0x58]
mov dword [esp + 0xc], eax
mov eax, dword [ebp - 0x3c]
mov dword [esp + 8], eax
mov dword [esp + 4], 0x20
mov eax, dword [ebp - 0xc8]
mov dword [esp], eax
call fcn.00431880
jmp 0x489b5e
mov eax, dword [ebp - 0x90]
mov dword [esp + 0xc], eax
mov eax, dword [ebp - 0x60]
mov dword [esp + 8], eax
mov dword [esp + 4], 0x81
mov eax, dword [ebp - 0xc8]
mov dword [esp], eax
call fcn.00431991
mov dword [esp + 0x14], 0
mov eax, dword [ebp - 0x90]
mov dword [esp + 0x10], eax
mov eax, dword [ebp - 0x58]
mov dword [esp + 0xc], eax
mov eax, dword [ebp - 0x3c]
mov dword [esp + 8], eax
mov dword [esp + 4], 0x1d
mov eax, dword [ebp - 0xc8]
mov dword [esp], eax
call fcn.00431e91
jmp 0x489b5e
mov eax, dword [ebp - 0xd8]
mov dword [esp + 0xc], eax
mov eax, dword [ebp - 0x60]
mov dword [esp + 8], eax
mov dword [esp + 4], 0x25
mov eax, dword [ebp - 0xc8]
mov dword [esp], eax
call fcn.00431991
mov eax, dword [ebp + 8]
mov dword [esp], eax
call fcn.00431f35
mov dword [ebp - 0x58], eax
mov eax, dword [ebp - 0x7c]
mov dword [esp + 0xc], eax
mov eax, dword [ebp - 0x60]
mov dword [esp + 8], eax
mov dword [esp + 4], 0x82
mov eax, dword [ebp - 0xc8]
mov dword [esp], eax
call fcn.00431991
mov dword [ebp - 0x28], eax
mov eax, dword [ebp - 0x7c]
mov dword [esp + 0x10], eax
mov eax, dword [ebp - 0x58]
mov dword [esp + 0xc], eax
mov eax, dword [ebp - 0x3c]
mov dword [esp + 8], eax
mov dword [esp + 4], 0x20
mov eax, dword [ebp - 0xc8]
mov dword [esp], eax
call fcn.00431880
jmp 0x489b5f
nop
cmp byte [ebp - 0x46], 0
je 0x489bd1
cmp dword [ebp - 0xa4], 0
jne 0x489b89
mov eax, dword [ebp - 0x80]
mov dword [esp + 8], eax
mov eax, dword [ebp - 0x4c]
mov dword [esp + 4], eax
mov eax, dword [ebp + 8]
mov dword [esp], eax
call fcn.00453921
jmp 0x489bb4
mov eax, dword [ebp - 0x80]
mov dword [esp + 0x10], eax
mov eax, dword [ebp - 0x50]
mov dword [esp + 0xc], eax
mov eax, dword [ebp - 0x60]
mov dword [esp + 8], eax
mov dword [esp + 4], 0x5a
mov eax, dword [ebp - 0xc8]
mov dword [esp], eax
call fcn.00431880
mov eax, dword [ebp - 0x80]
mov dword [esp + 8], eax
mov dword [esp + 4], 0xf
mov eax, dword [ebp - 0xc8]
mov dword [esp], eax
call fcn.00431960
cmp byte [ebp - 0x45], 0
jne 0x489bed
cmp dword [ebp - 0xd4], 0
jne 0x489bed
cmp dword [ebp - 0xb4], 0
je 0x489d83
cmp dword [ebp - 0xd4], 0
je 0x489c0d
mov eax, dword [ebp - 0xac]
mov dword [esp + 4], eax
mov eax, dword [ebp + 8]
mov dword [esp], eax
call fcn.0046c388
jmp 0x489c12
mov eax, 0
mov dword [ebp - 0xe8], eax
mov eax, dword [ebp + 0x18]
mov dword [esp + 0x18], eax
mov eax, dword [ebp - 0xac]
mov dword [esp + 0x14], eax
mov dword [esp + 0x10], 3
mov dword [esp + 0xc], 0
mov eax, dword [ebp + 0x10]
mov dword [esp + 8], eax
mov eax, dword [ebp - 0xb4]
mov dword [esp + 4], eax
mov eax, dword [ebp + 8]
mov dword [esp], eax
call fcn.00487f35
or dword [ebp - 0xe8], eax
mov dword [ebp - 0x1c], 0
jmp 0x489d3c
mov eax, dword [ebp - 0xac]
mov ecx, dword [eax + 4]
mov edx, dword [ebp - 0x1c]
mov eax, edx
shl eax, 2
add eax, edx
shl eax, 2
add eax, ecx
movzx eax, word [eax + 0x10]
movzx eax, ax
mov dword [ebp - 0xec], eax
mov eax, dword [ebp - 0x1c]
cwde
mov dword [esp + 4], eax
mov eax, dword [ebp - 0xac]
mov dword [esp], eax
call fcn.0045dba4
movsx edx, ax
mov eax, dword [ebp - 0x88]
add eax, edx
mov dword [ebp - 0x24], eax
cmp dword [ebp - 0xe8], 0xffffffff
je 0x489ce4
cmp dword [ebp - 0x1c], 0x1f
jg 0x489cd7
mov eax, dword [ebp - 0x1c]
mov edx, 1
mov ecx, eax
shl edx, cl
mov eax, edx
and eax, dword [ebp - 0xe8]
test eax, eax
jne 0x489ce4
mov eax, dword [ebp - 0xec]
and eax, 1
test eax, eax
je 0x489d13
mov eax, dword [ebp - 0x24]
mov dword [esp + 0x10], eax
mov eax, dword [ebp - 0x1c]
mov dword [esp + 0xc], eax
mov eax, dword [ebp - 0x3c]
mov dword [esp + 8], eax
mov eax, dword [ebp - 0xac]
mov dword [esp + 4], eax
mov eax, dword [ebp - 0xc8]
mov dword [esp], eax
call fcn.00451999
jmp 0x489d38
mov eax, dword [ebp - 0x24]
mov dword [esp + 0xc], eax
mov dword [esp + 8], 0
mov dword [esp + 4], 0x48
mov eax, dword [ebp - 0xc8]
mov dword [esp], eax
call fcn.00431991
add dword [ebp - 0x1c], 1
mov eax, dword [ebp - 0xac]
movzx eax, word [eax + 0x2a]
cwde
cmp eax, dword [ebp - 0x1c]
jg 0x489c67
cmp byte [ebp - 0x46], 0
jne 0x489d83
cmp dword [ebp - 0xc0], 0
jne 0x489d83
mov eax, dword [ebp - 0x80]
mov dword [esp + 0xc], eax
mov eax, dword [ebp - 0x7c]
mov dword [esp + 8], eax
mov dword [esp + 4], 0x4d
mov eax, dword [ebp - 0xc8]
mov dword [esp], eax
call fcn.00431991
mov eax, dword [ebp + 0x18]
mov dword [esp + 0x18], eax
mov eax, dword [ebp - 0xac]
mov dword [esp + 0x14], eax
mov dword [esp + 0x10], 1
mov dword [esp + 0xc], 1
mov eax, dword [ebp + 0x10]
mov dword [esp + 8], eax
mov eax, dword [ebp - 0xb4]
mov dword [esp + 4], eax
mov eax, dword [ebp + 8]
mov dword [esp], eax
call fcn.00487f35
mov dword [ebp - 0xf0], eax
mov dword [ebp - 0x1c], 0
mov eax, dword [ebp - 0x84]
mov dword [ebp - 0x24], eax
jmp 0x489fab
mov eax, dword [ebp - 0xac]
movzx eax, word [eax + 0x28]
cwde
cmp eax, dword [ebp - 0x1c]
jne 0x489e15
mov eax, dword [ebp - 0x24]
mov dword [esp + 0xc], eax
mov dword [esp + 8], 0
mov dword [esp + 4], 0x48
mov eax, dword [ebp - 0xc8]
mov dword [esp], eax
call fcn.00431991
jmp 0x489fa3
mov eax, dword [ebp - 0xac]
mov ecx, dword [eax + 4]
mov edx, dword [ebp - 0x1c]
mov eax, edx
shl eax, 2
add eax, edx
shl eax, 2
add eax, ecx
movzx eax, word [eax + 0x10]
movzx eax, ax
and eax, 0x60
test eax, eax
je 0x489e6e
mov eax, dword [ebp - 0xac]
mov ecx, dword [eax + 4]
mov edx, dword [ebp - 0x1c]
mov eax, edx
shl eax, 2
add eax, edx
shl eax, 2
add eax, ecx
movzx eax, word [eax + 0x10]
movzx eax, ax
and eax, 0x20
test eax, eax
je 0x489fa3
sub dword [ebp - 0x24], 1
jmp 0x489fa3
mov eax, dword [ebp - 0x1c]
lea edx, [eax*4]
mov eax, dword [ebp - 0x44]
add eax, edx
mov eax, dword [eax]
mov dword [ebp - 0x20], eax
cmp dword [ebp - 0x20], 0
js 0x489f1f
cmp dword [ebp - 0xa4], 0
je 0x489eed
cmp dword [ebp - 0xb8], 0
je 0x489eab
mov eax, dword [ebp - 0xac]
movzx eax, word [eax + 0x2a]
cwde
jmp 0x489eaf
movsx eax, word [ebp - 0x6e]
mov dword [ebp - 0xf4], eax
mov edx, dword [ebp - 0xf4]
mov eax, dword [ebp - 0x20]
add edx, eax
mov eax, dword [ebp - 0x24]
mov dword [esp + 0x10], eax
mov dword [esp + 0xc], edx
mov eax, dword [ebp - 0x60]
mov dword [esp + 8], eax
mov dword [esp + 4], 0x5a
mov eax, dword [ebp - 0xc8]
mov dword [esp], eax
call fcn.00431880
jmp 0x489fa3
mov ecx, dword [ebp + 0x10]
mov edx, dword [ebp - 0x20]
mov eax, edx
shl eax, 2
add eax, edx
shl eax, 2
add eax, ecx
add eax, 4
mov eax, dword [eax]
mov edx, dword [ebp - 0x24]
mov dword [esp + 8], edx
mov dword [esp + 4], eax
mov eax, dword [ebp + 8]
mov dword [esp], eax
call fcn.00453921
jmp 0x489fa3
mov eax, dword [ebp - 0x120]
and eax, 1
test eax, eax
je 0x489f48
cmp dword [ebp - 0x1c], 0x1f
jg 0x489f48
mov edx, dword [ebp - 0xf0]
mov eax, dword [ebp - 0x1c]
mov ecx, eax
shr edx, cl
mov eax, edx
and eax, 1
test eax, eax
je 0x489f7e
mov eax, dword [ebp - 0x24]
mov dword [esp + 0x10], eax
mov eax, dword [ebp - 0x1c]
mov dword [esp + 0xc], eax
mov eax, dword [ebp - 0x3c]
mov dword [esp + 8], eax
mov eax, dword [ebp - 0xac]
mov dword [esp + 4], eax
mov eax, dword [ebp - 0xc8]
mov dword [esp], eax
call fcn.00451999
mov dword [ebp - 0x74], 0
jmp 0x489fa3
mov eax, dword [ebp - 0x24]
mov dword [esp + 0xc], eax
mov dword [esp + 8], 0
mov dword [esp + 4], 0x48
mov eax, dword [ebp - 0xc8]
mov dword [esp], eax
call fcn.00431991
add dword [ebp - 0x1c], 1
add dword [ebp - 0x24], 1
mov eax, dword [ebp - 0xac]
movzx eax, word [eax + 0x2a]
cwde
cmp eax, dword [ebp - 0x1c]
jg 0x489ddb
mov eax, dword [ebp - 0xac]
mov eax, dword [eax + 0x24]
and eax, 0x60
test eax, eax
je 0x489fee
mov eax, dword [ebp - 0xac]
mov dword [esp + 8], eax
mov eax, dword [ebp - 0x84]
mov dword [esp + 4], eax
mov eax, dword [ebp + 8]
mov dword [esp], eax
call fcn.0046d539
mov eax, dword [ebp - 0x120]
and eax, 1
test eax, eax
je 0x48a1e8
mov eax, dword [ebp - 0x84]
mov dword [esp + 8], eax
mov eax, dword [ebp - 0xac]
mov dword [esp + 4], eax
mov eax, dword [ebp - 0xc8]
mov dword [esp], eax
call fcn.0046d268
mov eax, dword [ebp - 0x58]
mov dword [esp + 0x20], eax
mov eax, dword [ebp + 0x18]
mov dword [esp + 0x1c], eax
mov eax, dword [ebp - 0x7c]
mov dword [esp + 0x18], eax
mov eax, dword [ebp - 0xac]
mov dword [esp + 0x14], eax
mov dword [esp + 0x10], 1
mov eax, dword [ebp + 0x10]
mov dword [esp + 0xc], eax
mov dword [esp + 8], pe_nt_image_headers32
mov eax, dword [ebp - 0xb4]
mov dword [esp + 4], eax
mov eax, dword [ebp + 8]
mov dword [esp], eax
call fcn.00487e47
cmp dword [ebp - 0xb8], 0
jne 0x48a1e8
cmp dword [ebp - 0xc0], 0
je 0x48a0b9
mov eax, dword [ebp - 0x64]
mov dword [esp + 0x14], eax
mov eax, dword [ebp - 0x90]
mov dword [esp + 0x10], eax
mov eax, dword [ebp - 0x58]
mov dword [esp + 0xc], eax
mov eax, dword [ebp - 0x3c]
mov dword [esp + 8], eax
mov dword [esp + 4], 0x1d
mov eax, dword [ebp - 0xc8]
mov dword [esp], eax
call fcn.00431e91
jmp 0x48a0e4
mov eax, dword [ebp - 0x7c]
mov dword [esp + 0x10], eax
mov eax, dword [ebp - 0x58]
mov dword [esp + 0xc], eax
mov eax, dword [ebp - 0x3c]
mov dword [esp + 8], eax
mov dword [esp + 4], 0x20
mov eax, dword [ebp - 0xc8]
mov dword [esp], eax
call fcn.00431880
mov dword [ebp - 0x1c], 0
mov eax, dword [ebp - 0x84]
mov dword [ebp - 0x24], eax
jmp 0x48a1a5
mov eax, dword [ebp - 0xac]
mov ecx, dword [eax + 4]
mov edx, dword [ebp - 0x1c]
mov eax, edx
shl eax, 2
add eax, edx
shl eax, 2
add eax, ecx
movzx eax, word [eax + 0x10]
movzx eax, ax
and eax, 0x60
test eax, eax
je 0x48a14b
mov eax, dword [ebp - 0xac]
mov ecx, dword [eax + 4]
mov edx, dword [ebp - 0x1c]
mov eax, edx
shl eax, 2
add eax, edx
shl eax, 2
add eax, ecx
movzx eax, word [eax + 0x10]
movzx eax, ax
and eax, 0x20
test eax, eax
je 0x48a19d
sub dword [ebp - 0x24], 1
jmp 0x48a19d
mov eax, dword [ebp - 0x1c]
lea edx, [eax*4]
mov eax, dword [ebp - 0x44]
add eax, edx
mov eax, dword [eax]
test eax, eax
jns 0x48a19d
mov eax, dword [ebp - 0xac]
movzx eax, word [eax + 0x28]
cwde
cmp eax, dword [ebp - 0x1c]
je 0x48a19d
mov eax, dword [ebp - 0x24]
mov dword [esp + 0x10], eax
mov eax, dword [ebp - 0x1c]
mov dword [esp + 0xc], eax
mov eax, dword [ebp - 0x3c]
mov dword [esp + 8], eax
mov eax, dword [ebp - 0xac]
mov dword [esp + 4], eax
mov eax, dword [ebp - 0xc8]
mov dword [esp], eax
call fcn.00451999
add dword [ebp - 0x1c], 1
add dword [ebp - 0x24], 1
mov eax, dword [ebp - 0xac]
movzx eax, word [eax + 0x2a]
cwde
cmp eax, dword [ebp - 0x1c]
jg 0x48a0f9
mov eax, dword [ebp - 0xac]
mov eax, dword [eax + 0x24]
and eax, 0x60
test eax, eax
je 0x48a1e8
mov eax, dword [ebp - 0xac]
mov dword [esp + 8], eax
mov eax, dword [ebp - 0x84]
mov dword [esp + 4], eax
mov eax, dword [ebp + 8]
mov dword [esp], eax
call fcn.0046d539
cmp dword [ebp - 0xb8], 0
jne 0x48a488
mov eax, dword [ebp + 0x18]
movzx edx, al
movzx eax, byte [ebp - 0xcd]
mov dword [esp + 0x30], 0
mov ecx, dword [ebp - 0x44]
mov dword [esp + 0x2c], ecx
lea ecx, [ebp - 0x12c]
mov dword [esp + 0x28], ecx
mov ecx, dword [ebp - 0x58]
mov dword [esp + 0x24], ecx
mov dword [esp + 0x20], edx
mov dword [esp + 0x1c], eax
mov eax, dword [ebp - 0x7c]
mov dword [esp + 0x18], eax
mov eax, dword [ebp - 0x80]
mov dword [esp + 0x14], eax
mov eax, dword [ebp - 0x40]
mov dword [esp + 0x10], eax
mov eax, dword [ebp - 0x3c]
mov dword [esp + 0xc], eax
mov eax, dword [ebp - 0xa0]
mov dword [esp + 8], eax
mov eax, dword [ebp - 0xac]
mov dword [esp + 4], eax
mov eax, dword [ebp + 8]
mov dword [esp], eax
call fcn.0046f5b3
mov eax, dword [ebp - 0x12c]
test eax, eax
jne 0x48a278
cmp byte [ebp - 0xcd], 0
je 0x48a2e3
cmp dword [ebp - 0xc0], 0
je 0x48a2b8
mov eax, dword [ebp - 0x64]
mov dword [esp + 0x14], eax
mov eax, dword [ebp - 0x90]
mov dword [esp + 0x10], eax
mov eax, dword [ebp - 0x58]
mov dword [esp + 0xc], eax
mov eax, dword [ebp - 0x3c]
mov dword [esp + 8], eax
mov dword [esp + 4], 0x1d
mov eax, dword [ebp - 0xc8]
mov dword [esp], eax
call fcn.00431e91
jmp 0x48a2e3
mov eax, dword [ebp - 0x7c]
mov dword [esp + 0x10], eax
mov eax, dword [ebp - 0x58]
mov dword [esp + 0xc], eax
mov eax, dword [ebp - 0x3c]
mov dword [esp + 8], eax
mov dword [esp + 4], 0x20
mov eax, dword [ebp - 0xc8]
mov dword [esp], eax
call fcn.00431880
cmp dword [ebp - 0xd4], 0
je 0x48a322
movzx eax, byte [ebp - 0xcd]
mov dword [esp + 0x14], eax
mov eax, dword [ebp - 0x44]
mov dword [esp + 0x10], eax
mov dword [esp + 0xc], 0
mov eax, dword [ebp - 0x7c]
mov dword [esp + 8], eax
mov eax, dword [ebp - 0xac]
mov dword [esp + 4], eax
mov eax, dword [ebp + 8]
mov dword [esp], eax
call fcn.0046bcb7
mov dword [esp + 0x14], 0xffffffff
mov eax, dword [ebp - 0xa0]
mov dword [esp + 0x10], eax
mov eax, dword [ebp - 0x40]
mov dword [esp + 0xc], eax
mov eax, dword [ebp - 0x3c]
mov dword [esp + 8], eax
mov eax, dword [ebp - 0xac]
mov dword [esp + 4], eax
mov eax, dword [ebp + 8]
mov dword [esp], eax
call fcn.004676c7
cmp dword [ebp - 0x74], 0
je 0x48a37a
mov eax, dword [ebp - 0x3c]
mov dword [esp + 8], eax
mov dword [esp + 4], 0x8a
mov eax, dword [ebp - 0xc8]
mov dword [esp], eax
call fcn.00431960
cmp dword [ebp - 0xd4], 1
jg 0x48a38c
cmp byte [ebp - 0xcd], 0
je 0x48a3b1
mov dword [esp + 0xc], 0
mov eax, dword [ebp - 0x3c]
mov dword [esp + 8], eax
mov dword [esp + 4], 0x7d
mov eax, dword [ebp - 0xc8]
mov dword [esp], eax
call fcn.00431991
cmp dword [ebp - 0xd4], 0
je 0x48a3f0
movzx eax, byte [ebp - 0xcd]
mov dword [esp + 0x14], eax
mov eax, dword [ebp - 0x44]
mov dword [esp + 0x10], eax
mov eax, dword [ebp - 0x80]
mov dword [esp + 0xc], eax
mov dword [esp + 8], 0
mov eax, dword [ebp - 0xac]
mov dword [esp + 4], eax
mov eax, dword [ebp + 8]
mov dword [esp], eax
call fcn.0046bcb7
cmp dword [ebp - 0x54], 2
jne 0x48a3fd
mov eax, 6
jmp 0x48a402
mov eax, 4
mov dword [esp + 0x20], 0
mov dword [esp + 0x1c], 0
mov dword [esp + 0x18], eax
mov eax, dword [ebp - 0xa0]
mov dword [esp + 0x14], eax
mov eax, dword [ebp - 0x80]
mov dword [esp + 0x10], eax
mov eax, dword [ebp - 0x40]
mov dword [esp + 0xc], eax
mov eax, dword [ebp - 0x3c]
mov dword [esp + 8], eax
mov eax, dword [ebp - 0xac]
mov dword [esp + 4], eax
mov eax, dword [ebp + 8]
mov dword [esp], eax
call fcn.00470fed
cmp dword [ebp - 0xd4], 0
je 0x48a488
movzx eax, byte [ebp - 0xcd]
mov dword [esp + 0x14], eax
mov eax, dword [ebp - 0x44]
mov dword [esp + 0x10], eax
mov eax, dword [ebp - 0x7c]
mov dword [esp + 0xc], eax
mov eax, dword [ebp + 0x10]
mov dword [esp + 8], eax
mov eax, dword [ebp - 0xac]
mov dword [esp + 4], eax
mov eax, dword [ebp + 8]
mov dword [esp], eax
call fcn.0046ce8e
cmp dword [ebp - 0x78], 0
je 0x48a4b3
mov dword [esp + 0xc], 1
mov eax, dword [ebp - 0x78]
mov dword [esp + 8], eax
mov dword [esp + 4], 0x53
mov eax, dword [ebp - 0xc8]
mov dword [esp], eax
call fcn.00431991
mov eax, dword [ebp - 0x58]
mov dword [esp + 0x20], eax
mov eax, dword [ebp + 0x18]
mov dword [esp + 0x1c], eax
mov eax, dword [ebp - 0x7c]
mov dword [esp + 0x18], eax
mov eax, dword [ebp - 0xac]
mov dword [esp + 0x14], eax
mov dword [esp + 0x10], 2
mov eax, dword [ebp + 0x10]
mov dword [esp + 0xc], eax
mov dword [esp + 8], pe_nt_image_headers32
mov eax, dword [ebp - 0xb4]
mov dword [esp + 4], eax
mov eax, dword [ebp + 8]
mov dword [esp], eax
call fcn.00487e47
cmp dword [ebp - 0x54], 1
je 0x48a565
cmp dword [ebp - 0x54], 2
jne 0x48a52c
mov eax, dword [ebp - 0x58]
mov dword [esp + 4], eax
mov eax, dword [ebp - 0xc8]
mov dword [esp], eax
call fcn.00431fd6
mov eax, dword [ebp - 0x2c]
mov dword [esp], eax
call fcn.0049dcca
jmp 0x48a565
mov eax, dword [ebp - 0x58]
mov dword [esp + 4], eax
mov eax, dword [ebp - 0xc8]
mov dword [esp], eax
call fcn.00431fd6
mov eax, dword [ebp - 0x28]
mov dword [esp + 0xc], eax
mov eax, dword [ebp - 0x60]
mov dword [esp + 8], eax
mov dword [esp + 4], 5
mov eax, dword [ebp - 0xc8]
mov dword [esp], eax
call fcn.00431991
mov eax, dword [ebp - 0xd8]
mov dword [esp + 4], eax
mov eax, dword [ebp - 0xc8]
mov dword [esp], eax
call fcn.00431fd6
mov eax, dword [ebp + 8]
movzx eax, byte [eax + 0x12]
test al, al
jne 0x48a5a3
mov eax, dword [ebp + 8]
mov eax, dword [eax + 0x78]
test eax, eax
jne 0x48a5a3
cmp dword [ebp + 0x24], 0
jne 0x48a5a3
mov eax, dword [ebp + 8]
mov dword [esp], eax
call fcn.0046dcc7
cmp dword [ebp - 0x78], 0
je 0x48a631
mov dword [esp + 0xc], 1
mov eax, dword [ebp - 0x78]
mov dword [esp + 8], eax
mov dword [esp + 4], 0x50
mov eax, dword [ebp - 0xc8]
mov dword [esp], eax
call fcn.00431991
mov dword [esp + 4], 1
mov eax, dword [ebp - 0xc8]
mov dword [esp], eax
call fcn.00434136
mov dword [esp + 0x10], 0
mov dword [esp + 0xc], str.rows_updated
mov dword [esp + 8], 0
mov dword [esp + 4], 0
mov eax, dword [ebp - 0xc8]
mov dword [esp], eax
call fcn.00434201
jmp 0x48a631
nop
jmp 0x48a631
nop
jmp 0x48a631
nop
jmp 0x48a631
nop
jmp 0x48a631
nop
jmp 0x48a631
nop
jmp 0x48a631
nop
jmp 0x48a631
nop
jmp 0x48a631
nop
lea eax, [ebp - 0xfc]
mov dword [esp], eax
call fcn.0045c323
mov eax, dword [ebp - 0x44]
mov dword [esp + 4], eax
mov eax, dword [ebp - 0xa8]
mov dword [esp], eax
call fcn.00406439
mov eax, dword [ebp + 0xc]
mov dword [esp + 4], eax
mov eax, dword [ebp - 0xa8]
mov dword [esp], eax
call fcn.004642b1
mov eax, dword [ebp + 0x10]
mov dword [esp + 4], eax
mov eax, dword [ebp - 0xa8]
mov dword [esp], eax
call fcn.0044f1bf
mov eax, dword [ebp + 0x14]
mov dword [esp + 4], eax
mov eax, dword [ebp - 0xa8]
mov dword [esp], eax
call fcn.0044ddbf
nop
add esp, 0x16c
pop ebx
pop esi
pop edi
pop ebp
ret