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

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x114
xor eax, eax
push ebx
push esi
mov esi, dword [ebp + 8]
push edi
mov ebx, dword [esi]
xor edi, edi
xorps xmm0, xmm0
mov dword [ebp - 0x88], 0
mov dword [ebp - 0xb0], 0
mov dword [ebp - 0x4c], edi
mov dword [ebp - 0x48], 0xffffffff
mov dword [ebp - 0x20], edi
mov dword [ebp - 0x98], edi
mov dword [ebp - 0x80], eax
mov dword [ebp - 0x40], eax
mov dword [ebp - 0x9c], eax
mov dword [ebp - 0x68], eax
mov dword [ebp - 0xac], 1
mov dword [ebp - 0xa8], eax
mov dword [ebp - 0x18], eax
mov dword [ebp - 0x34], eax
mov dword [ebp - 0x84], eax
mov dword [ebp - 0x7c], eax
mov dword [ebp - 0x78], eax
mov dword [ebp - 0x3c], eax
movq qword [ebp - 0xb8], xmm0
mov dword [ebp - 0x28], ebx
cmp dword [esi + 0x24], eax
jne 0x474d04
cmp byte [ebx + 0x53], al
jne 0x474d04
mov edx, dword [ebp + 0xc]
push edx
push esi
call fcn.004710a0
mov ebx, eax
add esp, 8
mov dword [ebp - 0xc], ebx
test ebx, ebx
je 0x474d01
push dword [ebx + 0x48]
push dword [esi]
call fcn.0046d9e0
mov dword [ebp - 0x54], eax
lea eax, [ebp - 0xbc]
push eax
push dword [ebp + 0x10]
push 0x80
push ebx
push esi
call fcn.004723f0
mov dword [ebp - 0x50], eax
xor eax, eax
add esp, 0x1c
cmp dword [ebx + 0xc], eax
setne al
mov dword [ebp - 0x64], eax
mov eax, dword [ebp + 0xc]
cmp dword [eax], 1
jle 0x472af0
mov eax, dword [ebp + 0x10]
mov eax, dword [eax]
mov dword [ebp - 0x14], eax
jmp 0x472af3
mov dword [ebp - 0x14], edi
push ebx
push esi
call fcn.00481240
add esp, 8
test eax, eax
jne 0x474d01
push dword [ebp - 0xbc]
push ebx
push esi
call fcn.004638a0
add esp, 0xc
test eax, eax
jne 0x474d01
mov eax, dword [esi + 0x28]
mov edi, eax
lea edx, [eax + 1]
mov dword [esi + 0x28], edx
test byte [ebx + 0x24], 0x80
mov dword [ebp - 8], eax
mov dword [ebp - 0x8c], edi
mov dword [ebp - 0x94], edx
jne 0x472b46
mov dword [ebp - 0x24], 0
jmp 0x472b52
push ebx
call fcn.0046b4a0
add esp, 4
mov dword [ebp - 0x24], eax
mov eax, dword [ebx + 8]
xor ecx, ecx
mov dword [ebp - 0x90], ecx
test eax, eax
je 0x472b82
cmp dword [ebp - 0x24], eax
cmove edi, edx
inc edx
mov dword [esi + 0x28], edx
mov eax, dword [eax + 0x14]
inc ecx
test eax, eax
jne 0x472b61
mov dword [ebp - 8], edi
mov edi, dword [ebp - 0x8c]
mov dword [ebp - 0x90], ecx
mov edx, dword [ebp + 0x24]
test edx, edx
je 0x472b9d
mov eax, dword [edx + 0x28]
mov edx, dword [edx + 0x2c]
mov dword [ebp - 8], eax
mov dword [ebp - 0x94], edx
mov dword [esi + 0x28], edi
jmp 0x472ba0
mov eax, dword [ebp - 8]
mov edx, dword [ebp + 0xc]
push 0
mov dword [edx + 0x34], eax
movsx eax, word [ebx + 0x2a]
add eax, ecx
lea eax, [eax*4 + 6]
add eax, ecx
push eax
push dword [ebp - 0x28]
call fcn.00454b30
mov edi, eax
add esp, 0xc
mov dword [ebp - 0x1c], edi
test edi, edi
je 0x474d01
movsx eax, word [ebx + 0x2a]
lea ecx, [edi + eax*4]
mov eax, dword [ebp - 0x90]
mov dword [ebp - 0x74], ecx
lea ecx, [ecx + eax*4]
inc eax
push eax
add ecx, 4
push 1
push ecx
mov dword [ebp - 0x70], ecx
call sub.MSVCR110.dll_memset
mov eax, dword [ebp - 0x90]
mov ecx, dword [ebp - 0x70]
add esp, 0xc
mov byte [ecx + eax + 1], 0
xor eax, eax
xor ecx, ecx
cmp ax, word [ebx + 0x2a]
jge 0x472c20
mov edi, edi
mov dword [edi + ecx*4], 0xffffffff
movsx eax, word [ebx + 0x2a]
inc ecx
cmp ecx, eax
jl 0x472c10
mov eax, dword [ebp + 0xc]
xorps xmm0, xmm0
movq qword [ebp - 0x114], xmm0
mov dword [ebp - 0x110], eax
mov eax, dword [ebp + 0x24]
movq qword [ebp - 0x10c], xmm0
mov dword [ebp - 0x10c], eax
mov eax, dword [esi + 8]
movq qword [ebp - 0xfc], xmm0
movq qword [ebp - 0x104], xmm0
mov dword [ebp - 0x114], esi
mov dword [ebp - 0xfc], 0x200
mov dword [ebp - 4], eax
test eax, eax
jne 0x472c94
cmp dword [esi + 0x74], eax
jne 0x472c80
mov eax, dword [esi]
test byte [eax + 0x4c], 8
jne 0x472c80
mov byte [esi + 0x17], 1
push esi
call fcn.00476530
add esp, 4
mov dword [ebp - 4], eax
test eax, eax
je 0x474d01
mov ecx, dword [ebp + 0x10]
xor ebx, ebx
xor al, al
mov byte [ebp - 0x29], 0
mov byte [ebp - 0xd], al
mov dword [ebp - 0x44], ebx
cmp dword [ecx], ebx
jle 0x472e98
lea esi, [ecx + 8]
mov dword [ebp - 0x30], esi
cmp dword [ebp - 0x14], 0
jne 0x472cd2
push dword [esi]
lea eax, [ebp - 0x114]
push eax
call fcn.0046c3d0
add esp, 8
test eax, eax
jne 0x474cfe
mov edx, dword [ebp - 0xc]
xor edi, edi
movsx eax, word [edx + 0x2a]
test eax, eax
jle 0x472d59
mov eax, dword [edx + 4]
mov dword [ebp - 0xa0], eax
mov ebx, eax
mov edi, edi
mov edx, dword [ebx]
mov esi, dword [esi + 4]
sub esi, edx
movzx ecx, byte [edx]
movzx eax, byte [esi + edx]
cmp ecx, eax
jne 0x472d2f
test ecx, ecx
jne 0x472d41
mov edx, dword [ebp - 0xc]
movsx eax, word [edx + 0x28]
cmp edi, eax
jne 0x472d96
mov esi, dword [ebp - 0x30]
mov ebx, dword [ebp - 0x44]
mov eax, dword [esi]
mov dword [ebp - 0x4c], eax
mov eax, dword [ebp - 0x1c]
mov byte [ebp - 0xd], 1
mov dword [ebp - 0x48], ebx
mov dword [eax + edi*4], ebx
jmp 0x472d59
movzx eax, byte [eax + 0x4c2c08]
movzx ecx, byte [ecx + 0x4c2c08]
sub ecx, eax
jne 0x472d44
inc edx
jmp 0x472cf7
mov edx, dword [ebp - 0xc]
mov esi, dword [ebp - 0x30]
movsx eax, word [edx + 0x2a]
inc edi
add ebx, 0x14
cmp edi, eax
jl 0x472cf0
mov ebx, dword [ebp - 0x44]
movsx eax, word [edx + 0x2a]
cmp edi, eax
jl 0x472e33
cmp dword [ebp - 0x24], 0
jne 0x472fac
mov edi, dword [esi + 4]
mov esi, str._ROWID_
mov edx, edi
sub esi, edi
jmp 0x472d80
movzx ecx, byte [edx]
movzx eax, byte [edx + esi]
cmp ecx, eax
jne 0x472ddd
test ecx, ecx
je 0x472e1a
inc edx
jmp 0x472d80
cmp dword [ebp - 0x24], 0
mov ecx, dword [ebp - 0xa0]
je 0x472dbe
lea eax, [edi + edi*4]
test byte [ecx + eax*4 + 0x10], 1
je 0x472dbe
mov eax, dword [ebp - 0x1c]
mov ebx, dword [ebp - 0x44]
mov esi, dword [ebp - 0x30]
mov byte [ebp - 0x29], 1
mov dword [eax + edi*4], ebx
jmp 0x472d59
lea eax, [edi + edi*4]
test byte [ecx + eax*4 + 0x10], 0x60
jne 0x472f8e
mov eax, dword [ebp - 0x1c]
mov ebx, dword [ebp - 0x44]
mov esi, dword [ebp - 0x30]
mov dword [eax + edi*4], ebx
jmp 0x472d59
movzx eax, byte [eax + 0x4c2c08]
movzx ecx, byte [ecx + 0x4c2c08]
sub ecx, eax
jne 0x472df2
inc edx
jmp 0x472d80
push str.ROWID
push edi
call fcn.004718c0
add esp, 8
test eax, eax
je 0x472e1a
push 0x4c9448
push edi
call fcn.004718c0
add esp, 8
test eax, eax
jne 0x472fac
mov esi, dword [ebp - 0x30]
or edi, 0xffffffff
mov eax, dword [esi]
mov byte [ebp - 0xd], 1
mov dword [ebp - 0x4c], eax
mov dword [ebp - 0x48], ebx
mov edx, str.ROWID
jmp 0x472e47
test edi, edi
jns 0x472e3e
mov edx, str.ROWID
jmp 0x472e47
mov eax, dword [edx + 4]
lea ecx, [edi + edi*4]
mov edx, dword [eax + ecx*4]
mov eax, dword [ebp - 0x28]
mov ecx, dword [ebp - 0x54]
mov eax, dword [eax + 0x10]
add ecx, ecx
push dword [eax + ecx*8]
mov eax, dword [ebp - 0xc]
push edx
push dword [eax]
push 0x17
push dword [ebp + 8]
call fcn.0044c3f0
add esp, 0x14
cmp eax, 1
je 0x474cfe
cmp eax, 2
jne 0x472e80
mov eax, dword [ebp - 0x1c]
mov dword [eax + edi*4], 0xffffffff
mov ecx, dword [ebp + 0x10]
inc ebx
add esi, 0x14
mov dword [ebp - 0x44], ebx
mov dword [ebp - 0x30], esi
cmp ebx, dword [ecx]
jl 0x472cb3
mov al, byte [ebp - 0xd]
mov bl, byte [ebp - 0x29]
mov edx, dword [ebp - 0xc]
add bl, al
test byte [edx + 0x24], 0x60
mov byte [ebp - 0x44], bl
je 0x472f80
lea ecx, [ecx]
xor eax, eax
xor ebx, ebx
xor esi, esi
cmp ax, word [edx + 0x2a]
jge 0x472f7d
xor edi, edi
mov eax, dword [ebp - 0x1c]
cmp dword [eax + esi*4], 0
jge 0x472f65
mov eax, dword [edx + 4]
test byte [eax + edi + 0x10], 0x60
je 0x472f65
mov ecx, dword [eax + edi + 4]
mov edx, dword [ebp - 0x1c]
xorps xmm0, xmm0
xor eax, eax
mov dword [ebp - 0xc0], 0
movq qword [ebp - 0xd8], xmm0
movq qword [ebp - 0xc8], xmm0
mov dword [ebp - 0xc0], edx
mov edx, dword [ebp - 0xc]
movq qword [ebp - 0xd0], xmm0
mov word [ebp - 0xc4], ax
mov dword [ebp - 0xd4], 0x429570
test ecx, ecx
je 0x472f43
push ecx
lea eax, [ebp - 0xd8]
push eax
call fcn.004955f0
mov ax, word [ebp - 0xc4]
mov edx, dword [ebp - 0xc]
add esp, 8
cmp byte [ebp - 0xd], 0
jne 0x472f51
mov ecx, 0xfffd
and ax, cx
test ax, ax
je 0x472f65
mov eax, dword [ebp - 0x1c]
mov ebx, 1
mov dword [eax + esi*4], 0x1869f
movsx eax, word [edx + 0x2a]
inc esi
add edi, 0x14
cmp esi, eax
jl 0x472ec2
test ebx, ebx
jne 0x472eb0
mov bl, byte [ebp - 0x44]
cmp dword [edx + 0x38], 0
je 0x472fd6
or eax, 0xffffffff
or ecx, 0xffffffff
jmp 0x472fed
mov eax, dword [edx + 4]
lea ecx, [edi + edi*4]
push dword [eax + ecx*4]
push str.cannot_UPDATE_generated_column___s_
push dword [ebp + 8]
call fcn.00456a10
add esp, 0xc
jmp 0x474cfe
mov esi, dword [ebp + 0x10]
lea eax, [ebx + ebx*4]
mov ebx, dword [ebp + 8]
push dword [esi + eax*4 + 0xc]
push str.no_such_column:__s
push ebx
call fcn.00456a10
mov edi, dword [ebp - 0x1c]
mov byte [ebx + 0x11], 1
mov ebx, dword [ebp - 0x28]
add esp, 0xc
jmp 0x474d07
xorps xmm0, xmm0
movlpd qword [ebp - 0xa4], xmm0
mov ecx, dword [ebp - 0xa0]
mov eax, dword [ebp - 0xa4]
mov esi, dword [ebp + 0xc]
mov dword [esi + 0x40], eax
movzx eax, bl
push eax
push dword [ebp - 0x1c]
mov dword [esi + 0x44], ecx
push edx
push dword [ebp + 8]
mov dword [ebp - 0xa0], eax
call fcn.0045dc00
mov edi, eax
mov eax, dword [ebp - 0x68]
add esp, 0x10
cmp dword [ebp + 0x18], 5
mov ecx, 1
cmove eax, ecx
mov dword [ebp - 0x68], eax
mov eax, dword [ebp - 0xc]
xor ebx, ebx
mov esi, dword [eax + 8]
mov dword [ebp - 0x30], edi
mov dword [ebp - 0x6c], ebx
test esi, esi
je 0x4731ff
lea esp, [esp]
cmp byte [ebp - 0x44], 0
jne 0x4731c9
cmp edi, 1
jg 0x4731c9
cmp esi, dword [ebp - 0x24]
je 0x4731c9
mov eax, dword [esi + 0x24]
test eax, eax
je 0x4730d9
xorps xmm0, xmm0
xor ecx, ecx
push eax
movq qword [ebp - 0xc8], xmm0
mov word [ebp - 0xc4], cx
mov ecx, dword [ebp - 0x1c]
lea eax, [ebp - 0xd8]
movq qword [ebp - 0xd8], xmm0
mov dword [ebp - 0xc0], 0
push eax
movq qword [ebp - 0xd0], xmm0
mov dword [ebp - 0xd4], 0x429570
mov dword [ebp - 0xc0], ecx
call fcn.004955f0
mov cx, word [ebp - 0xc4]
add esp, 8
cmp byte [ebp - 0xd], 0
jne 0x4730c9
mov eax, 0xfffd
and cx, ax
xor eax, eax
test cx, cx
setne al
test eax, eax
jne 0x4731c9
xor ecx, ecx
xor eax, eax
xor edi, edi
mov dword [ebp - 0x5c], ecx
cmp ax, word [esi + 0x32]
jae 0x4731df
xor ebx, ebx
mov edi, edi
mov eax, dword [esi + 4]
mov edx, dword [ebp - 0x1c]
movzx eax, word [eax + edi*2]
test ax, ax
js 0x47310d
cwde
xor ecx, ecx
cmp dword [edx + eax*4], ecx
setge cl
jmp 0x473183
mov eax, dword [esi + 0x28]
xorps xmm0, xmm0
mov ecx, dword [eax + ebx + 8]
xor eax, eax
movq qword [ebp - 0xf4], xmm0
movq qword [ebp - 0xe4], xmm0
mov dword [ebp - 0xdc], 0
movq qword [ebp - 0xec], xmm0
mov word [ebp - 0xe0], ax
mov dword [ebp - 0xf0], 0x429570
mov dword [ebp - 0xdc], edx
test ecx, ecx
je 0x47316d
push ecx
lea eax, [ebp - 0xf4]
push eax
call fcn.004955f0
mov ax, word [ebp - 0xe0]
add esp, 8
cmp byte [ebp - 0xd], 0
jne 0x47317b
mov ecx, 0xfffd
and ax, cx
xor ecx, ecx
test ax, ax
setne cl
test ecx, ecx
jne 0x47319f
movzx eax, word [esi + 0x32]
inc edi
add ebx, 0x14
cmp edi, eax
jl 0x4730f0
mov ecx, dword [ebp - 0x5c]
mov ebx, dword [ebp - 0x6c]
jmp 0x4731df
mov edx, dword [ebp + 8]
mov ebx, dword [ebp - 0x6c]
inc dword [edx + 0x2c]
movzx eax, word [esi + 0x34]
mov ecx, dword [edx + 0x2c]
add eax, ecx
cmp dword [ebp + 0x18], 0xb
mov dword [edx + 0x2c], eax
jne 0x4731db
cmp byte [esi + 0x36], 5
jne 0x4731db
mov dword [ebp - 0x68], 1
jmp 0x4731db
mov edx, dword [ebp + 8]
inc dword [edx + 0x2c]
movzx eax, word [esi + 0x34]
mov ecx, dword [edx + 0x2c]
add eax, ecx
mov dword [edx + 0x2c], eax
test ecx, ecx
jne 0x4731e7
mov eax, dword [ebp - 0x70]
mov byte [ebx + eax + 1], 0
mov eax, dword [ebp - 0x74]
mov edi, dword [ebp - 0x30]
mov dword [eax + ebx*4], ecx
mov esi, dword [esi + 0x14]
inc ebx
mov dword [ebp - 0x6c], ebx
test esi, esi
jne 0x473040
mov esi, dword [ebp + 8]
mov ecx, dword [ebp - 0x74]
inc dword [esi + 0x2c]
mov eax, dword [esi + 0x2c]
mov dword [ecx + ebx*4], eax
cmp dword [ebp - 0x68], 0
je 0x473229
mov eax, dword [ebp - 0x90]
inc eax
push eax
push 1
push dword [ebp - 0x70]
call sub.MSVCR110.dll_memset
add esp, 0xc
cmp byte [esi + 0x12], 0
jne 0x473239
mov eax, dword [ebp - 4]
or dword [eax + 0x98], 0x10
cmp dword [ebp - 0x50], 0
jne 0x473247
test edi, edi
jne 0x473247
xor ebx, ebx
jmp 0x47324c
mov ebx, 1
mov eax, dword [esi + 0x74]
mov ecx, dword [ebp - 0x54]
test eax, eax
cmovne esi, eax
mov edi, 1
mov edx, dword [esi + 0x54]
shl edi, cl
test edx, edi
jne 0x47327a
mov eax, edi
or eax, edx
mov dword [esi + 0x54], eax
cmp ecx, 1
jne 0x47327a
push esi
call fcn.00465c20
add esp, 4
mov edx, dword [ebp - 0xc]
or dword [esi + 0x50], edi
or byte [esi + 0x14], bl
cmp dword [edx + 0x38], 0
mov esi, dword [ebp + 8]
jne 0x4732f6
mov ecx, dword [ebp - 0x74]
mov eax, dword [ebp - 0x6c]
mov eax, dword [ecx + eax*4]
inc dword [esi + 0x2c]
cmp byte [ebp - 0x29], 0
mov ebx, dword [esi + 0x2c]
mov ecx, dword [ebp - 0x50]
mov dword [ebp - 0x78], eax
mov dword [ebp - 0x34], ebx
mov dword [ebp - 0x18], ebx
jne 0x4732b8
test ecx, ecx
jne 0x4732b8
mov eax, dword [ebp - 0x30]
test eax, eax
je 0x4732ca
lea eax, [ebx + 1]
mov dword [ebp - 0x7c], eax
movsx eax, word [edx + 0x2a]
add eax, ebx
mov dword [esi + 0x2c], eax
mov eax, dword [ebp - 0x30]
cmp byte [ebp - 0x44], 0
jne 0x4732d8
test ecx, ecx
jne 0x4732d8
test eax, eax
je 0x4732e1
inc dword [esi + 0x2c]
mov eax, dword [esi + 0x2c]
mov dword [ebp - 0x34], eax
mov ecx, dword [esi + 0x2c]
lea eax, [ecx + 1]
mov dword [ebp - 0x84], eax
movsx eax, word [edx + 0x2a]
add eax, ecx
mov dword [esi + 0x2c], eax
mov eax, dword [ebp - 0x64]
test eax, eax
je 0x47331a
mov eax, dword [esi + 0xf0]
mov dword [ebp - 0xb8], eax
mov eax, dword [edx]
mov dword [esi + 0xf0], eax
mov eax, dword [ebp - 0x64]
mov dword [ebp - 0xb4], esi
cmp dword [ebp - 0x14], 0
mov edi, dword [ebp + 0x14]
jne 0x47336b
test eax, eax
je 0x473342
push dword [ebp - 8]
push dword [ebp + 0x20]
push dword [ebp + 0x1c]
push edi
push edx
push esi
call fcn.004650e0
add esp, 0x18
xor ebx, ebx
mov dword [ebp - 0x54], ebx
jmp 0x47334e
mov esi, dword [ebp + 0x20]
mov ebx, dword [ebp + 0x1c]
mov dword [ebp - 0x54], esi
mov esi, dword [ebp + 8]
lea eax, [ebp - 0x114]
push edi
push eax
call fcn.0046c3d0
add esp, 8
test eax, eax
jne 0x474cfe
mov edx, dword [ebp - 0xc]
jmp 0x473374
mov eax, dword [ebp + 0x20]
mov ebx, dword [ebp + 0x1c]
mov dword [ebp - 0x54], eax
cmp dword [edx + 0x38], 0
je 0x47339a
push dword [ebp + 0x18]
push edi
mov edi, dword [ebp - 0x1c]
push edi
push dword [ebp - 0x4c]
push dword [ebp + 0x10]
push edx
push dword [ebp + 0xc]
push esi
call fcn.0048e100
add esp, 0x20
jmp 0x474d01
mov eax, dword [ebp - 0x28]
dec dword [esi + 0x38]
mov ecx, dword [eax + 0x24]
mov edi, dword [esi + 0x38]
and ecx, 1
xor eax, eax
or eax, ecx
mov ecx, dword [ebp + 8]
mov dword [ebp - 0x60], edi
mov dword [ebp - 0x58], edi
je 0x47344f
cmp dword [ecx + 0x78], 0
jne 0x47344f
cmp byte [ecx + 0x12], 0
jne 0x47344f
cmp byte [ecx + 0x91], 0
jne 0x47344f
cmp dword [ebp + 0x24], 0
mov esi, dword [ebp - 4]
jne 0x473452
inc dword [ecx + 0x2c]
mov eax, dword [ecx + 0x2c]
mov ecx, dword [esi + 0x6c]
mov dword [ebp - 0xa8], eax
cmp dword [esi + 0x70], ecx
jg 0x473412
push 0
push eax
push 0
push 0x45
push esi
call fcn.004380c0
mov edx, dword [ebp - 0xc]
mov ecx, dword [ebp + 8]
add esp, 0x14
jmp 0x473452
mov edi, dword [ebp - 0xa8]
lea eax, [ecx + 1]
mov dword [esi + 0x6c], eax
mov eax, dword [esi + 0x68]
lea ecx, [ecx + ecx*4]
mov dword [eax + ecx*4 + 8], edi
mov edi, dword [ebp - 0x60]
mov dword [eax + ecx*4], 0x45
mov dword [eax + ecx*4 + 4], 0
mov dword [eax + ecx*4 + 0xc], 0
mov dword [eax + ecx*4 + 0x10], 0
mov ecx, dword [ebp + 8]
jmp 0x473452
mov esi, dword [ebp - 4]
cmp dword [ebp - 0x14], 0
jne 0x47351d
test byte [edx + 0x24], 0x80
jne 0x47351d
mov ecx, dword [esi + 0x6c]
cmp dword [esi + 0x70], ecx
jg 0x473483
push dword [ebp - 0x18]
push dword [ebp - 0x78]
push 0
push 0x48
push esi
call fcn.004380c0
add esp, 0x14
jmp 0x4734b4
mov edx, dword [ebp - 0x78]
mov ebx, dword [ebp - 0x18]
lea eax, [ecx + 1]
mov dword [esi + 0x6c], eax
mov eax, dword [esi + 0x68]
lea ecx, [ecx + ecx*4]
mov dword [eax + ecx*4], 0x48
mov dword [eax + ecx*4 + 4], 0
mov dword [eax + ecx*4 + 8], edx
mov dword [eax + ecx*4 + 0xc], ebx
mov dword [eax + ecx*4 + 0x10], 0
mov edx, dword [ebp + 8]
mov ecx, dword [edx + 0x28]
mov dword [ebp - 0x20], ecx
lea eax, [ecx + 1]
mov dword [edx + 0x28], eax
mov ebx, dword [esi + 0x6c]
mov dword [ebp - 0x80], ebx
cmp dword [esi + 0x70], ebx
jg 0x4734e7
push dword [ebp - 0x78]
push 0
push ecx
push 0x70
push esi
call fcn.004380c0
add esp, 0x14
mov dword [ebp - 0x80], eax
jmp 0x4736e7
lea eax, [ebx + 1]
mov dword [esi + 0x6c], eax
mov eax, dword [esi + 0x68]
mov esi, dword [ebp - 0x78]
lea ecx, [ebx + ebx*4]
mov ebx, dword [ebp - 0x20]
mov dword [eax + ecx*4], 0x70
mov dword [eax + ecx*4 + 4], ebx
mov dword [eax + ecx*4 + 8], 0
mov dword [eax + ecx*4 + 0xc], esi
mov dword [eax + ecx*4 + 0x10], 0
jmp 0x4736ea
mov eax, dword [ebp - 0x24]
test eax, eax
je 0x47352a
movzx edx, word [eax + 0x32]
jmp 0x47352c
xor edx, edx
mov eax, dword [ecx + 0x2c]
movsx edi, dx
mov dword [ebp - 0x9c], edx
mov edx, dword [ebp - 0x14]
lea esi, [eax + 1]
inc edx
add eax, edi
add eax, edx
cmp dword [ebp + 0x24], 0
mov edx, dword [ebp - 0xc]
mov dword [ebp - 0x40], esi
mov dword [ebp - 0x5c], edi
mov dword [ebp - 0x3c], eax
mov dword [ecx + 0x2c], eax
jne 0x4736b2
cmp dword [ebp - 0x64], 0
je 0x473568
movsx eax, word [edx + 0x2a]
jmp 0x47356a
xor eax, eax
lea esi, [edi + eax]
mov eax, dword [ecx + 0x28]
add esi, dword [ebp - 0x14]
mov dword [ebp - 0x20], eax
inc eax
cmp dword [ebp - 0x24], 0
mov dword [ecx + 0x28], eax
je 0x4735da
mov eax, dword [ebp - 4]
mov edx, dword [ebp - 0x40]
mov ecx, dword [eax + 0x6c]
dec edx
add edx, edi
cmp dword [eax + 0x70], ecx
jg 0x4735a4
push edx
push dword [ebp - 0x40]
push 0
push 0x48
push eax
call fcn.004380c0
add esp, 0x14
jmp 0x4735da
mov edi, dword [ebp - 4]
lea eax, [ecx + 1]
mov dword [edi + 0x6c], eax
mov eax, edi
mov edi, dword [ebp - 0x40]
mov eax, dword [eax + 0x68]
lea ecx, [ecx + ecx*4]
mov dword [eax + ecx*4 + 8], edi
mov edi, dword [ebp - 0x5c]
mov dword [eax + ecx*4], 0x48
mov dword [eax + ecx*4 + 4], 0
mov dword [eax + ecx*4 + 0xc], edx
mov dword [eax + ecx*4 + 0x10], 0
mov edx, dword [ebp - 4]
mov ecx, dword [edx + 0x6c]
mov dword [ebp - 0x80], ecx
cmp dword [edx + 0x70], ecx
jg 0x4735fe
push 0
push esi
push dword [ebp - 0x20]
push 0x70
push edx
call fcn.004380c0
add esp, 0x14
mov dword [ebp - 0x80], eax
jmp 0x47362c
lea eax, [ecx + 1]
mov dword [edx + 0x6c], eax
mov eax, dword [edx + 0x68]
mov edx, dword [ebp - 0x20]
lea ecx, [ecx + ecx*4]
mov dword [eax + ecx*4], 0x70
mov dword [eax + ecx*4 + 4], edx
mov dword [eax + ecx*4 + 8], esi
mov dword [eax + ecx*4 + 0xc], 0
mov dword [eax + ecx*4 + 0x10], 0
mov eax, dword [ebp - 0x24]
test eax, eax
je 0x473677
push eax
push dword [ebp + 8]
call fcn.00463cd0
mov edx, eax
add esp, 8
test edx, edx
je 0x473674
mov word [edx + 8], si
mov esi, dword [ebp - 4]
mov eax, dword [esi]
cmp byte [eax + 0x53], 0
je 0x473662
push edx
push 0xfffffffffffffff7
push eax
call fcn.00435b70
add esp, 0xc
jmp 0x473674
mov eax, dword [esi + 0x6c]
lea ecx, [eax + eax*4]
mov eax, dword [esi + 0x68]
mov byte [eax + ecx*4 - 0x13], 0xf7
mov dword [eax + ecx*4 - 4], edx
mov eax, dword [ebp - 0x24]
cmp dword [ebp - 0x14], 0
je 0x473767
push dword [ebp - 0x54]
mov edx, dword [ebp + 0xc]
push ebx
push dword [ebp + 0x14]
mov ebx, dword [ebp - 0x20]
push edx
push dword [ebp + 0x10]
push eax
push ebx
push dword [ebp + 8]
call fcn.0048db40
mov eax, dword [ebp - 8]
mov ecx, dword [ebp + 8]
mov esi, dword [ebp - 0x40]
add esp, 0x20
cmp dword [ebp - 0x64], 0
cmovne eax, ebx
mov dword [ebp - 8], eax
mov edx, dword [ebp - 0x14]
test edx, edx
je 0x4736e4
mov eax, dword [ecx + 0x74]
mov ebx, dword [ebp - 0xb8]
test eax, eax
cmovne ecx, eax
xor eax, eax
mov dword [ebp - 0x98], edi
mov edi, dword [ebp - 0xb4]
mov byte [ecx + 0x14], 1
mov dword [ebp - 0x38], eax
mov dword [ebp - 0x3c], esi
jmp 0x473aef
mov edi, dword [ebp - 0x60]
mov edx, dword [ebp + 8]
cmp dword [ebp + 0x24], 0
je 0x473767
push 0x10
push edi
push dword [ebp + 0x14]
mov dword [ebp - 0xb0], 0
push edx
mov dword [ebp - 0x38], 1
call fcn.0045a330
mov edi, dword [ebp - 0xb4]
mov ebx, dword [ebp - 0xb8]
add esp, 0x10
mov dword [ebp - 0xac], 0
mov dword [ebp - 0x5c], edi
mov dword [ebp - 0x54], ebx
mov edx, dword [ebp - 8]
mov ecx, dword [ebp - 0xc]
test byte [ecx + 0x24], 0x80
jne 0x473911
mov esi, dword [ebp - 4]
mov ecx, dword [esi + 0x6c]
cmp dword [esi + 0x70], ecx
jg 0x47382d
push 0
push dword [ebp - 0x18]
push edx
push 0x83
push esi
call fcn.004380c0
mov edx, dword [ebp - 0x18]
add esp, 0x14
jmp 0x47385e
mov ecx, dword [ebp + 8]
mov eax, 4
cmp byte [ecx + 0x12], 0
jne 0x473793
cmp dword [ebp - 0x50], 0
jne 0x473793
cmp dword [ebp - 0x30], 0
jne 0x473793
cmp byte [ebp - 0x44], 0
jne 0x473793
cmp dword [ebp - 0x68], 0
mov edx, 0xc
cmove eax, edx
push dword [ebp - 0x94]
push eax
push 0
push 0
push dword [ebp + 0x14]
push dword [ebp + 0xc]
push ecx
call fcn.004835b0
add esp, 0x1c
mov dword [ebp - 0xb0], eax
test eax, eax
je 0x474cfe
movzx esi, byte [eax + 0x2e]
mov ebx, dword [eax + 0x14]
mov edi, dword [eax + 0x18]
mov eax, dword [eax + 0x30]
and eax, 1
mov dword [ebp - 0x54], ebx
mov dword [ebp - 0x5c], edi
mov dword [ebp - 0x38], esi
mov dword [ebp - 0xac], eax
cmp esi, 1
je 0x47372c
mov ecx, dword [ebp + 8]
mov eax, dword [ecx + 0x74]
test eax, eax
cmovne ecx, eax
mov byte [ecx + 0x14], 1
cmp esi, 2
jne 0x47372c
test edi, edi
js 0x47372c
mov edx, dword [ebp - 8]
cmp edi, edx
je 0x47372f
mov ecx, dword [ebp - 0x70]
mov eax, edi
sub eax, dword [ebp - 0x8c]
cmp byte [eax + ecx], 0
mov eax, 0
cmovne esi, eax
mov dword [ebp - 0x38], esi
jmp 0x47372f
mov edi, dword [ebp - 0x5c]
lea eax, [ecx + 1]
mov dword [esi + 0x6c], eax
mov eax, dword [esi + 0x68]
lea ecx, [ecx + ecx*4]
mov dword [eax + ecx*4 + 4], edx
mov edx, dword [ebp - 0x18]
mov dword [eax + ecx*4], 0x83
mov dword [eax + ecx*4 + 8], edx
mov dword [eax + ecx*4 + 0xc], 0
mov dword [eax + ecx*4 + 0x10], 0
mov eax, dword [ebp - 0x38]
test eax, eax
jne 0x4738ce
mov eax, dword [ebp + 8]
mov ecx, dword [ebp - 0x6c]
inc dword [eax + 0x2c]
mov ebx, dword [ebp - 0x74]
mov eax, dword [eax + 0x2c]
mov dword [ebx + ecx*4], eax
mov ecx, dword [esi + 0x6c]
mov ebx, dword [ebp - 0x54]
cmp dword [esi + 0x70], ecx
jg 0x473899
push edx
push dword [ebp - 0x78]
push dword [ebp - 0x20]
push 0x7c
push esi
call fcn.004380c0
add esp, 0x14
jmp 0x473ae9
mov edx, dword [ebp - 0x20]
lea eax, [ecx + 1]
mov dword [esi + 0x6c], eax
mov eax, dword [esi + 0x68]
lea ecx, [ecx + ecx*4]
mov dword [eax + ecx*4 + 4], edx
mov edx, dword [ebp - 0x78]
mov dword [eax + ecx*4 + 8], edx
mov edx, dword [ebp - 0x18]
mov dword [eax + ecx*4], 0x7c
mov dword [eax + ecx*4 + 0xc], edx
mov dword [eax + ecx*4 + 0x10], 0
jmp 0x473ae9
mov ecx, dword [ebp - 0x80]
test ecx, ecx
je 0x473aec
mov edx, dword [esi]
cmp byte [edx + 0x53], 0
jne 0x473aec
mov eax, dword [esi + 0x68]
lea ecx, [ecx + ecx*4]
push dword [eax + ecx*4 + 0x10]
lea esi, [eax + ecx*4]
movsx eax, byte [esi + 1]
push eax
push edx
call fcn.00435b70
add esp, 0xc
mov word [esi], 0xb1
mov dword [esi + 0x10], 0
jmp 0x473ae9
mov eax, dword [ebp - 0x9c]
movsx ebx, ax
xor esi, esi
test ebx, ebx
jle 0x47394d
mov edi, dword [ebp - 4]
mov eax, dword [ebp - 0x40]
add eax, esi
push eax
mov eax, dword [ebp - 0x24]
mov eax, dword [eax + 4]
movsx eax, word [eax + esi*2]
push eax
push edx
push ecx
push edi
call fcn.00457a60
mov ecx, dword [ebp - 0xc]
mov edx, dword [ebp - 8]
inc esi
add esp, 0x14
cmp esi, ebx
jl 0x473923
mov edi, dword [ebp - 0x5c]
mov eax, dword [ebp - 0x38]
test eax, eax
je 0x4739a4
mov ecx, dword [ebp - 0x80]
test ecx, ecx
je 0x473990
mov esi, dword [ebp - 4]
mov edx, dword [esi]
cmp byte [edx + 0x53], 0
jne 0x473990
mov eax, dword [esi + 0x68]
lea ecx, [ecx + ecx*4]
push dword [eax + ecx*4 + 0x10]
lea esi, [eax + ecx*4]
movsx eax, byte [esi + 1]
push eax
push edx
call fcn.00435b70
mov eax, dword [ebp - 0x38]
add esp, 0xc
mov word [esi], 0xb1
mov dword [esi + 0x10], 0
mov ecx, dword [ebp - 0x40]
mov dword [ebp - 0x98], ebx
mov ebx, dword [ebp - 0x54]
mov dword [ebp - 0x3c], ecx
jmp 0x473aec
push dword [ebp - 0x24]
push dword [ebp - 0x28]
call fcn.00461eb0
mov ecx, dword [ebp - 4]
add esp, 8
mov edx, dword [ecx + 0x6c]
mov esi, eax
cmp dword [ecx + 0x70], edx
jg 0x4739d5
push dword [ebp - 0x3c]
push ebx
push dword [ebp - 0x40]
push 0x5d
push ecx
call fcn.004380c0
add esp, 0x14
mov edx, eax
jmp 0x473a08
mov edi, dword [ebp - 0x40]
lea eax, [edx + 1]
mov dword [ecx + 0x6c], eax
mov eax, dword [ebp - 4]
lea ecx, [edx + edx*4]
mov eax, dword [eax + 0x68]
mov dword [eax + ecx*4 + 4], edi
mov edi, dword [ebp - 0x3c]
mov dword [eax + ecx*4 + 0xc], edi
mov edi, dword [ebp - 0x5c]
mov dword [eax + ecx*4], 0x5d
mov dword [eax + ecx*4 + 8], ebx
mov dword [eax + ecx*4 + 0x10], 0
mov ecx, dword [ebp - 4]
mov eax, dword [ecx]
cmp byte [eax + 0x53], 0
je 0x473a4c
cmp ebx, 0xfffffff4
je 0x473a23
push esi
push ebx
push eax
call fcn.00435b70
add esp, 0xc
mov esi, dword [ebp - 4]
mov edx, dword [esi + 0x6c]
cmp dword [esi + 0x70], edx
jg 0x473a9c
push dword [ebp - 0x40]
push dword [ebp - 0x3c]
push dword [ebp - 0x20]
push 0x86
push esi
call fcn.004380c0
add esp, 0x14
mov edx, eax
jmp 0x473acf
test edx, edx
jns 0x473a54
mov edx, dword [ecx + 0x6c]
dec edx
mov eax, dword [ebp - 4]
lea ecx, [edx + edx*4]
mov eax, dword [eax + 0x68]
lea eax, [eax + ecx*4]
test ebx, ebx
jns 0x473a8b
cmp byte [eax + 1], 0
jne 0x473a8b
cmp ebx, 0xfffffffd
jne 0x473a77
mov dword [eax + 0x10], esi
mov byte [eax + 1], bl
jmp 0x473a23
test esi, esi
je 0x473a23
mov dword [eax + 0x10], esi
mov byte [eax + 1], bl
cmp ebx, 0xfffffff4
jne 0x473a23
inc dword [esi + 0xc]
jmp 0x473a23
push ebx
push esi
mov esi, dword [ebp - 4]
push eax
push esi
call fcn.0048f290
add esp, 0x10
jmp 0x473a26
mov edi, dword [ebp - 0x20]
lea eax, [edx + 1]
mov dword [esi + 0x6c], eax
mov eax, dword [esi + 0x68]
lea ecx, [edx + edx*4]
mov dword [eax + ecx*4 + 4], edi
mov edi, dword [ebp - 0x3c]
mov dword [eax + ecx*4 + 8], edi
mov edi, dword [ebp - 0x40]
mov dword [eax + ecx*4 + 0xc], edi
mov edi, dword [ebp - 0x5c]
mov dword [eax + ecx*4], 0x86
mov dword [eax + ecx*4 + 0x10], 0
mov eax, dword [esi]
cmp byte [eax + 0x53], 0
jne 0x473ae6
mov eax, dword [esi + 0x68]
lea ecx, [edx + edx*4]
mov byte [eax + ecx*4 + 1], 0xfd
mov dword [eax + ecx*4 + 0x10], ebx
mov ebx, dword [ebp - 0x54]
mov eax, dword [ebp - 0x38]
mov edx, dword [ebp - 0x14]
cmp dword [ebp + 0x24], 0
jne 0x4740d5
test edx, edx
jne 0x473b10
cmp eax, 2
je 0x473b10
push dword [ebp - 0xb0]
call fcn.00486280
add esp, 4
cmp dword [ebp - 0x64], 0
jne 0x473c0a
mov ecx, dword [ebp - 0x38]
xor esi, esi
test ecx, ecx
je 0x473b46
mov edx, dword [ebp - 0x70]
test ebx, ebx
js 0x473b36
mov eax, ebx
sub eax, dword [ebp - 0x8c]
mov byte [eax + edx], 0
test edi, edi
js 0x473b46
mov eax, edi
sub eax, dword [ebp - 0x8c]
mov byte [eax + edx], 0
cmp ecx, 2
jne 0x473bb1
mov ecx, dword [ebp - 0x90]
xor eax, eax
test edi, edi
setns al
sub ecx, eax
test ecx, ecx
jle 0x473bb1
mov edx, dword [ebp - 4]
mov esi, dword [edx + 0x6c]
cmp dword [edx + 0x70], esi
jg 0x473b7e
push 0
push 0
push 0
push 0x11
push edx
call fcn.004380c0
add esp, 0x14
mov esi, eax
jmp 0x473bb1
lea eax, [esi + 1]
mov dword [edx + 0x6c], eax
mov eax, dword [edx + 0x68]
lea ecx, [esi + esi*4]
mov dword [eax + ecx*4], 0x11
mov dword [eax + ecx*4 + 4], 0
mov dword [eax + ecx*4 + 8], 0
mov dword [eax + ecx*4 + 0xc], 0
mov dword [eax + ecx*4 + 0x10], 0
mov eax, dword [ebp - 0xc]
push 0
push 0
push dword [ebp - 0x70]
push dword [ebp - 0x8c]
push 0
push 0x63
push eax
push dword [ebp + 8]
call fcn.00465a10
add esp, 0x20
test esi, esi
je 0x473c0a
mov ecx, dword [ebp - 4]
mov edx, dword [ecx + 0x6c]
lea eax, [edx - 1]
cmp esi, eax
jne 0x473be7
mov dword [ecx + 0x6c], eax
jmp 0x473c0a
test esi, esi
cmovs esi, eax
mov eax, dword [ecx]
cmp byte [eax + 0x53], 0
je 0x473bfb
mov eax, 0x4db054
jmp 0x473c07
mov eax, dword [ebp - 4]
lea ecx, [esi + esi*4]
mov eax, dword [eax + 0x68]
lea eax, [eax + ecx*4]
mov dword [eax + 8], edx
mov esi, dword [ebp - 0x38]
test esi, esi
je 0x473d26
mov eax, dword [ebp - 8]
cmp ebx, eax
mov ebx, dword [ebp - 4]
je 0x473c3e
cmp edi, eax
mov edi, dword [ebp - 0x60]
je 0x473c41
push dword [ebp - 0x98]
push dword [ebp - 0x3c]
push edi
push eax
push 0x1d
push ebx
call fcn.00475d80
add esp, 0x18
jmp 0x473c41
mov edi, dword [ebp - 0x60]
cmp esi, 1
je 0x473c52
mov eax, dword [ebp + 8]
dec dword [eax + 0x38]
mov esi, dword [eax + 0x38]
mov dword [ebp - 0x58], esi
cmp dword [ebp - 0x24], 0
mov edx, dword [ebp - 0x18]
mov ecx, dword [ebx + 0x6c]
cmovne edx, dword [ebp - 0x3c]
cmp dword [ebx + 0x70], ecx
jg 0x473cf6
push 0
push edi
push edx
push 0x32
push ebx
call fcn.004380c0
add esp, 0x14
mov edi, dword [ebp + 8]
mov eax, dword [ebp - 0x14]
cmp byte [ebp - 0xd], 0
je 0x4741b3
test eax, eax
jne 0x474118
mov edx, dword [ebp - 0x34]
cmp dword [edi + 8], eax
je 0x47416a
push edx
push dword [ebp - 0x4c]
push edi
call fcn.00458c10
mov edx, dword [ebp - 0x34]
mov esi, eax
add esp, 0xc
cmp esi, edx
je 0x47416a
mov eax, dword [ebp - 0x4c]
mov edx, dword [edi + 8]
mov ecx, dword [eax + 4]
and ecx, 0x200000
neg ecx
sbb cl, cl
add cl, 0x4e
movzx ebx, cl
mov ecx, dword [edx + 0x6c]
cmp dword [edx + 0x70], ecx
jg 0x4740e5
push 0
push dword [ebp - 0x34]
push esi
push ebx
push edx
call fcn.004380c0
mov ebx, dword [ebp - 4]
mov edx, dword [ebp - 0x34]
add esp, 0x14
jmp 0x47416a
lea eax, [ecx + 1]
mov dword [ebx + 0x6c], eax
mov eax, dword [ebx + 0x68]
lea ecx, [ecx + ecx*4]
mov dword [eax + ecx*4], 0x32
mov dword [eax + ecx*4 + 4], edx
mov dword [eax + ecx*4 + 8], edi
mov dword [eax + ecx*4 + 0xc], 0
mov dword [eax + ecx*4 + 0x10], 0
jmp 0x473c78
cmp dword [ebp - 0x24], 0
jne 0x473e42
cmp dword [ebp - 0x14], 0
jne 0x473e42
mov ebx, dword [ebp - 4]
mov edi, dword [ebp - 0x60]
mov ecx, dword [ebx + 0x6c]
cmp dword [ebx + 0x70], ecx
jg 0x473d5e
push 0
push edi
push dword [ebp - 0x20]
push 0x25
push ebx
call fcn.004380c0
mov edx, dword [ebp - 0x20]
add esp, 0x14
jmp 0x473d8c
mov edx, dword [ebp - 0x20]
lea eax, [ecx + 1]
mov dword [ebx + 0x6c], eax
mov eax, dword [ebx + 0x68]
lea ecx, [ecx + ecx*4]
mov dword [eax + ecx*4], 0x25
mov dword [eax + ecx*4 + 4], edx
mov dword [eax + ecx*4 + 8], edi
mov dword [eax + ecx*4 + 0xc], 0
mov dword [eax + ecx*4 + 0x10], 0
mov edi, dword [ebp + 8]
dec dword [edi + 0x38]
mov ecx, dword [ebx + 0x6c]
mov esi, dword [edi + 0x38]
mov dword [ebp - 0x58], esi
mov dword [ebp - 0x88], ecx
cmp dword [ebx + 0x70], ecx
jg 0x473dc5
push 0
push dword [ebp - 0x18]
push edx
push 0x83
push ebx
call fcn.004380c0
mov edx, dword [ebp - 0x18]
add esp, 0x14
mov dword [ebp - 0x88], eax
jmp 0x473df3
lea eax, [ecx + 1]
mov dword [ebx + 0x6c], eax
mov eax, dword [ebx + 0x68]
lea ecx, [ecx + ecx*4]
mov dword [eax + ecx*4 + 4], edx
mov edx, dword [ebp - 0x18]
mov dword [eax + ecx*4], 0x83
mov dword [eax + ecx*4 + 8], edx
mov dword [eax + ecx*4 + 0xc], 0
mov dword [eax + ecx*4 + 0x10], 0
mov ecx, dword [ebx + 0x6c]
cmp dword [ebx + 0x70], ecx
jg 0x473e10
push edx
push esi
push dword [ebp - 8]
push 0x20
push ebx
call fcn.004380c0
add esp, 0x14
jmp 0x473c7b
mov edx, dword [ebp - 8]
lea eax, [ecx + 1]
mov dword [ebx + 0x6c], eax
mov eax, dword [ebx + 0x68]
lea ecx, [ecx + ecx*4]
mov dword [eax + ecx*4 + 4], edx
mov edx, dword [ebp - 0x18]
mov dword [eax + ecx*4], 0x20
mov dword [eax + ecx*4 + 8], esi
mov dword [eax + ecx*4 + 0xc], edx
mov dword [eax + ecx*4 + 0x10], 0
jmp 0x473c7b
mov eax, dword [ebp + 8]
mov ebx, dword [ebp - 4]
dec dword [eax + 0x38]
mov ecx, dword [ebx + 0x6c]
mov esi, dword [eax + 0x38]
mov edi, dword [ebp - 0x60]
mov dword [ebp - 0x58], esi
cmp dword [ebx + 0x70], ecx
jg 0x473e72
push 0
push edi
push dword [ebp - 0x20]
push 0x25
push ebx
call fcn.004380c0
mov edx, dword [ebp - 0x20]
add esp, 0x14
jmp 0x473ea0
mov edx, dword [ebp - 0x20]
lea eax, [ecx + 1]
mov dword [ebx + 0x6c], eax
mov eax, dword [ebx + 0x68]
lea ecx, [ecx + ecx*4]
mov dword [eax + ecx*4], 0x25
mov dword [eax + ecx*4 + 4], edx
mov dword [eax + ecx*4 + 8], edi
mov dword [eax + ecx*4 + 0xc], 0
mov dword [eax + ecx*4 + 0x10], 0
mov eax, dword [ebp - 0x14]
mov ecx, dword [ebx + 0x6c]
mov dword [ebp - 0x88], ecx
test eax, eax
je 0x474021
cmp dword [ebp - 0x64], 0
jne 0x4740dd
cmp dword [ebp - 0x24], 0
je 0x473f97
mov eax, dword [ebp - 0x9c]
movsx edi, ax
xor esi, esi
test edi, edi
jle 0x473f26
mov ecx, dword [ebx + 0x6c]
cmp dword [ebx + 0x70], ecx
jg 0x473ef7
mov eax, dword [ebp - 0x40]
add eax, esi
push eax
push esi
push edx
push 0x5b
push ebx
call fcn.004380c0
mov edx, dword [ebp - 0x20]
add esp, 0x14
jmp 0x473f21
lea eax, [ecx + 1]
mov dword [ebx + 0x6c], eax
mov eax, dword [ebx + 0x68]
lea ecx, [ecx + ecx*4]
lea ecx, [eax + ecx*4]
mov eax, dword [ebp - 0x40]
add eax, esi
mov dword [ecx], 0x5b
mov dword [ecx + 4], edx
mov dword [ecx + 8], esi
mov dword [ecx + 0xc], eax
mov dword [ecx + 0x10], 0
inc esi
cmp esi, edi
jl 0x473ed7
mov edx, dword [ebx + 0x6c]
cmp dword [ebx + 0x70], edx
jg 0x473f47
push dword [ebp - 0x40]
mov esi, dword [ebp - 0x58]
push esi
push dword [ebp - 8]
push 0x1d
push ebx
call fcn.004380c0
add esp, 0x14
mov edx, eax
jmp 0x473f77
mov esi, dword [ebp - 8]
lea eax, [edx + 1]
mov dword [ebx + 0x6c], eax
mov eax, dword [ebx + 0x68]
lea ecx, [edx + edx*4]
mov dword [eax + ecx*4 + 4], esi
mov esi, dword [ebp - 0x58]
mov dword [eax + ecx*4 + 8], esi
mov esi, dword [ebp - 0x40]
mov dword [eax + ecx*4], 0x1d
mov dword [eax + ecx*4 + 0xc], esi
mov dword [eax + ecx*4 + 0x10], 0
mov eax, dword [ebx]
cmp byte [eax + 0x53], 0
jne 0x473c78
mov eax, dword [ebx + 0x68]
lea ecx, [edx + edx*4]
mov byte [eax + ecx*4 + 1], 0xfd
mov dword [eax + ecx*4 + 0x10], edi
jmp 0x473c78
mov edi, dword [ebp - 0x18]
cmp dword [ebx + 0x70], ecx
jg 0x473fb3
push 0
push edi
push edx
push 0x83
push ebx
call fcn.004380c0
add esp, 0x14
jmp 0x473fde
lea eax, [ecx + 1]
mov dword [ebx + 0x6c], eax
mov eax, dword [ebx + 0x68]
lea ecx, [ecx + ecx*4]
mov dword [eax + ecx*4], 0x83
mov dword [eax + ecx*4 + 4], edx
mov dword [eax + ecx*4 + 8], edi
mov dword [eax + ecx*4 + 0xc], 0
mov dword [eax + ecx*4 + 0x10], 0
mov ecx, dword [ebx + 0x6c]
cmp dword [ebx + 0x70], ecx
jg 0x473ff2
push edi
push esi
push dword [ebp - 8]
push 0x20
jmp 0x473c6f
mov edx, dword [ebp - 8]
lea eax, [ecx + 1]
mov dword [ebx + 0x6c], eax
mov eax, dword [ebx + 0x68]
lea ecx, [ecx + ecx*4]
mov dword [eax + ecx*4], 0x20
mov dword [eax + ecx*4 + 4], edx
mov dword [eax + ecx*4 + 8], esi
mov dword [eax + ecx*4 + 0xc], edi
mov dword [eax + ecx*4 + 0x10], 0
jmp 0x473c78
mov edi, dword [ebp - 0x3c]
cmp dword [ebx + 0x70], ecx
jg 0x47403d
push 0
push edi
push edx
push 0x82
push ebx
call fcn.004380c0
add esp, 0x14
jmp 0x474068
lea eax, [ecx + 1]
mov dword [ebx + 0x6c], eax
mov eax, dword [ebx + 0x68]
lea ecx, [ecx + ecx*4]
mov dword [eax + ecx*4], 0x82
mov dword [eax + ecx*4 + 4], edx
mov dword [eax + ecx*4 + 8], edi
mov dword [eax + ecx*4 + 0xc], 0
mov dword [eax + ecx*4 + 0x10], 0
mov edx, dword [ebx + 0x6c]
cmp dword [ebx + 0x70], edx
jg 0x474084
push edi
push esi
push dword [ebp - 8]
push 0x1d
push ebx
call fcn.004380c0
add esp, 0x14
mov edx, eax
jmp 0x4740b1
mov edi, dword [ebp - 8]
lea eax, [edx + 1]
mov dword [ebx + 0x6c], eax
mov eax, dword [ebx + 0x68]
lea ecx, [edx + edx*4]
mov dword [eax + ecx*4 + 8], esi
mov esi, dword [ebp - 0x3c]
mov dword [eax + ecx*4], 0x1d
mov dword [eax + ecx*4 + 4], edi
mov dword [eax + ecx*4 + 0xc], esi
mov dword [eax + ecx*4 + 0x10], 0
mov eax, dword [ebx]
cmp byte [eax + 0x53], 0
jne 0x473c78
mov eax, dword [ebx + 0x68]
lea ecx, [edx + edx*4]
mov byte [eax + ecx*4 + 1], 0xfd
mov dword [eax + ecx*4 + 0x10], 0
jmp 0x473c78
mov ebx, dword [ebp - 4]
jmp 0x473c78
mov edi, dword [ebp + 8]
jmp 0x473c7e
lea eax, [ecx + 1]
mov dword [edx + 0x6c], eax
mov eax, dword [edx + 0x68]
lea ecx, [ecx + ecx*4]
xor edx, edx
mov word [eax + ecx*4 + 2], dx
mov edx, dword [ebp - 0x34]
mov byte [eax + ecx*4], bl
mov ebx, dword [ebp - 4]
mov dword [eax + ecx*4 + 4], esi
mov dword [eax + ecx*4 + 8], edx
mov dword [eax + ecx*4 + 0xc], 0
mov byte [eax + ecx*4 + 1], 0
jmp 0x474162
mov ecx, dword [ebx + 0x6c]
cmp dword [ebx + 0x70], ecx
jg 0x47413a
push dword [ebp - 0x34]
mov edx, dword [ebp - 0x48]
push edx
push dword [ebp - 0x20]
push 0x5b
push ebx
call fcn.004380c0
mov edx, dword [ebp - 0x34]
add esp, 0x14
jmp 0x47416a
mov edx, dword [ebp - 0x20]
lea eax, [ecx + 1]
mov dword [ebx + 0x6c], eax
mov eax, dword [ebx + 0x68]
lea ecx, [ecx + ecx*4]
mov dword [eax + ecx*4 + 4], edx
mov edx, dword [ebp - 0x48]
mov dword [eax + ecx*4 + 8], edx
mov edx, dword [ebp - 0x34]
mov dword [eax + ecx*4], 0x5b
mov dword [eax + ecx*4 + 0xc], edx
mov dword [eax + ecx*4 + 0x10], 0
mov ecx, dword [ebx + 0x6c]
cmp dword [ebx + 0x70], ecx
jg 0x474184
push 0
push 0
push edx
push 0xf
push ebx
call fcn.004380c0
add esp, 0x14
jmp 0x4741b3
lea eax, [ecx + 1]
mov dword [ebx + 0x6c], eax
mov eax, dword [ebx + 0x68]
lea ecx, [ecx + ecx*4]
mov dword [eax + ecx*4], 0xf
mov dword [eax + ecx*4 + 4], edx
mov dword [eax + ecx*4 + 8], 0
mov dword [eax + ecx*4 + 0xc], 0
mov dword [eax + ecx*4 + 0x10], 0
cmp byte [ebp - 0x29], 0
jne 0x47425c
cmp dword [ebp - 0x30], 0
jne 0x474266
mov eax, dword [ebp - 0x50]
test eax, eax
je 0x474383
xor ebx, ebx
push dword [ebp + 0x18]
push dword [ebp - 0xc]
push 3
push 0
push dword [ebp + 0x10]
push dword [ebp - 0x50]
push edi
call fcn.00471e50
mov ecx, dword [ebp - 0xc]
or ebx, eax
xor eax, eax
add esp, 0x1c
xor esi, esi
mov dword [ebp - 0x4c], ebx
cmp ax, word [ecx + 0x2a]
jge 0x474323
xor edi, edi
mov dword [ebp - 0x48], edi
jmp 0x474210
test byte [ecx + 0x24], 0x20
mov ebx, dword [ecx + 4]
je 0x474281
movzx eax, si
test ax, ax
js 0x474281
movsx ecx, ax
xor edi, edi
xor edx, edx
test ecx, ecx
jle 0x47423d
lea eax, [ebx + 0x10]
mov edi, ecx
test byte [eax], 0x20
jne 0x474237
inc edx
add eax, 0x14
dec ecx
jne 0x474231
lea eax, [edi + edi*4]
test byte [ebx + eax*4 + 0x10], 0x20
je 0x474279
mov eax, dword [ebp - 0xc]
mov ax, word [eax + 0x2c]
sub ax, dx
add ax, di
mov edi, dword [ebp - 0x48]
movzx eax, ax
jmp 0x474284
cmp dword [ebp - 0x30], 0
je 0x4741d2
push dword [ebp - 0xc]
push edi
call fcn.0045db20
add esp, 8
mov ebx, eax
jmp 0x4741d4
mov edi, dword [ebp - 0x48]
movzx eax, dx
jmp 0x474284
movzx eax, si
movsx edx, ax
add edx, dword [ebp - 0x7c]
cmp dword [ebp - 0x4c], 0xffffffff
je 0x4742f7
cmp esi, 0x20
jge 0x4742a3
mov eax, 1
mov ecx, esi
shl eax, cl
test dword [ebp - 0x4c], eax
jne 0x4742f7
movzx eax, word [ebx + edi + 0x10]
test al, 1
jne 0x4742f7
mov ebx, dword [ebp - 4]
mov ecx, dword [ebx + 0x6c]
cmp dword [ebx + 0x70], ecx
jg 0x4742c6
push 0
push edx
push 0
push 0x48
push ebx
call fcn.004380c0
jmp 0x474307
lea eax, [ecx + 1]
mov dword [ebx + 0x6c], eax
mov eax, dword [ebx + 0x68]
lea ecx, [ecx + ecx*4]
mov dword [eax + ecx*4], 0x48
mov dword [eax + ecx*4 + 4], 0
mov dword [eax + ecx*4 + 8], edx
mov dword [eax + ecx*4 + 0xc], 0
mov dword [eax + ecx*4 + 0x10], 0
jmp 0x47430a
push edx
push esi
push dword [ebp - 8]
push dword [ebp - 0xc]
push dword [ebp - 4]
call fcn.00457a60
add esp, 0x14
mov ecx, dword [ebp - 0xc]
inc esi
movsx eax, word [ecx + 0x2a]
add edi, 0x14
mov dword [ebp - 0x48], edi
cmp esi, eax
jl 0x474210
mov edi, dword [ebp + 8]
cmp byte [ebp - 0xd], 0
jne 0x474380
cmp dword [ebp - 0x24], 0
jne 0x474380
mov edx, dword [ebp - 4]
mov ecx, dword [edx + 0x6c]
cmp dword [edx + 0x70], ecx
jg 0x47434f
push 0
push dword [ebp - 0x34]
push dword [ebp - 0x18]
push 0x4d
push edx
call fcn.004380c0
add esp, 0x14
jmp 0x474380
lea eax, [ecx + 1]
mov dword [edx + 0x6c], eax
mov eax, dword [edx + 0x68]
mov edx, dword [ebp - 0x18]
lea ecx, [ecx + ecx*4]
mov dword [eax + ecx*4 + 4], edx
mov edx, dword [ebp - 0x34]
mov dword [eax + ecx*4], 0x4d
mov dword [eax + ecx*4 + 8], edx
mov dword [eax + ecx*4 + 0xc], 0
mov dword [eax + ecx*4 + 0x10], 0
mov eax, dword [ebp - 0x50]
push dword [ebp + 0x18]
push dword [ebp - 0xc]
push 1
push 1
push dword [ebp + 0x10]
push eax
push edi
call fcn.00471e50
mov edx, dword [ebp - 0x84]
mov edi, eax
mov eax, dword [ebp - 0xc]
add esp, 0x1c
movsx ecx, word [eax + 0x2a]
xor ebx, ebx
mov dword [ebp - 0x48], edi
mov esi, edx
test ecx, ecx
jle 0x474499
xor edx, edx
mov dword [ebp - 0x4c], edx
lea ecx, [ecx]
movsx eax, word [eax + 0x28]
cmp ebx, eax
jne 0x4743ec
mov edx, dword [ebp - 4]
mov ecx, dword [edx + 0x6c]
cmp dword [edx + 0x70], ecx
jg 0x474602
push 0
push esi
push 0
push 0x48
push edx
call fcn.004380c0
add esp, 0x14
jmp 0x47447b
mov eax, dword [ebp - 0xc]
mov eax, dword [eax + 4]
movzx eax, word [eax + edx + 0x10]
test al, 0x60
je 0x474402
test al, 0x20
je 0x47447b
dec esi
jmp 0x47447b
mov eax, dword [ebp - 0x1c]
mov eax, dword [eax + ebx*4]
test eax, eax
js 0x4745c4
cmp dword [ebp - 0x14], 0
je 0x474529
cmp dword [ebp - 0x64], 0
jne 0x474429
mov ecx, dword [ebp - 0x9c]
movsx ecx, cx
lea edx, [ecx + eax]
mov eax, dword [ebp - 4]
mov ecx, dword [eax + 0x6c]
cmp dword [eax + 0x70], ecx
jg 0x474449
push esi
push edx
push dword [ebp - 0x20]
push 0x5b
push eax
call fcn.004380c0
add esp, 0x14
jmp 0x47447b
mov edi, dword [ebp - 4]
lea eax, [ecx + 1]
mov dword [edi + 0x6c], eax
lea ecx, [ecx + ecx*4]
mov eax, edi
mov edi, dword [ebp - 0x20]
mov eax, dword [eax + 0x68]
mov dword [eax + ecx*4], 0x5b
mov dword [eax + ecx*4 + 4], edi
mov dword [eax + ecx*4 + 8], edx
mov dword [eax + ecx*4 + 0xc], esi
mov dword [eax + ecx*4 + 0x10], 0
mov edi, dword [ebp - 0x48]
mov eax, dword [ebp - 0xc]
add dword [ebp - 0x4c], 0x14
movsx ecx, word [eax + 0x2a]
mov edx, dword [ebp - 0x4c]
inc ebx
inc esi
cmp ebx, ecx
jl 0x4743c0
mov edx, dword [ebp - 0x84]
test byte [eax + 0x24], 0x60
mov edi, dword [ebp + 8]
je 0x4744b0
push eax
push edx
push edi
call fcn.00452ef0
mov eax, dword [ebp - 0xc]
add esp, 0xc
test byte [ebp - 0xbc], 1
je 0x474770
push dword [ebp - 0x84]
mov ebx, dword [ebp - 4]
push eax
push ebx
call fcn.00471a10
mov esi, dword [ebp - 0x58]
push esi
push dword [ebp + 0x18]
push dword [ebp - 0x18]
push dword [ebp - 0xc]
push 1
push dword [ebp + 0x10]
push 0x80
push dword [ebp - 0x50]
push edi
call fcn.00452100
add esp, 0x30
cmp dword [ebp - 0x64], 0
jne 0x4749f0
cmp dword [ebp - 0x24], 0
je 0x4746d3
mov edx, dword [ebx + 0x6c]
cmp dword [ebx + 0x70], edx
jg 0x474658
push dword [ebp - 0x3c]
push esi
push dword [ebp - 8]
push 0x1d
push ebx
call fcn.004380c0
add esp, 0x14
mov edx, eax
jmp 0x474685
mov ecx, dword [ebp + 0x10]
lea eax, [eax + eax*4]
mov eax, dword [ecx + eax*4 + 8]
mov ecx, dword [ebp + 8]
mov dword [ebp - 0x7c], eax
cmp dword [ecx + 8], 0
je 0x47447b
push esi
push eax
push ecx
call fcn.00458c10
mov edi, eax
add esp, 0xc
cmp edi, esi
je 0x474478
mov ecx, dword [ebp - 0x7c]
mov edx, dword [ebp + 8]
mov ecx, dword [ecx + 4]
mov edx, dword [edx + 8]
and ecx, 0x200000
neg ecx
sbb cl, cl
add cl, 0x4e
movzx eax, cl
mov ecx, dword [edx + 0x6c]
mov dword [ebp - 0x7c], eax
cmp dword [edx + 0x70], ecx
jg 0x474592
push 0
push esi
push edi
push eax
push edx
call fcn.004380c0
add esp, 0x14
jmp 0x474478
lea eax, [ecx + 1]
mov dword [edx + 0x6c], eax
mov eax, dword [edx + 0x68]
mov edx, dword [ebp - 0x7c]
lea ecx, [ecx + ecx*4]
mov byte [eax + ecx*4], dl
xor edx, edx
mov word [eax + ecx*4 + 2], dx
mov dword [eax + ecx*4 + 4], edi
mov dword [eax + ecx*4 + 8], esi
mov dword [eax + ecx*4 + 0xc], edx
mov dword [eax + ecx*4 + 0x10], edx
mov byte [eax + ecx*4 + 1], dl
jmp 0x474478
test dword [ebp - 0xbc], 1
je 0x474636
cmp ebx, 0x1f
jg 0x474636
mov eax, 1
mov ecx, ebx
shl eax, cl
test edi, eax
jne 0x474636
mov edx, dword [ebp - 4]
mov ecx, dword [edx + 0x6c]
cmp dword [edx + 0x70], ecx
jg 0x474602
push 0
push esi
push 0
push 0x48
push edx
call fcn.004380c0
add esp, 0x14
jmp 0x47447b
lea eax, [ecx + 1]
mov dword [edx + 0x6c], eax
mov eax, dword [edx + 0x68]
lea ecx, [ecx + ecx*4]
mov dword [eax + ecx*4], 0x48
mov dword [eax + ecx*4 + 4], 0
mov dword [eax + ecx*4 + 8], esi
mov dword [eax + ecx*4 + 0xc], 0
mov dword [eax + ecx*4 + 0x10], 0
jmp 0x47447b
push esi
push ebx
push dword [ebp - 8]
push dword [ebp - 0xc]
push dword [ebp - 4]
call fcn.00457a60
add esp, 0x14
mov dword [ebp - 0xac], 0
jmp 0x47447b
mov edi, dword [ebp - 8]
lea eax, [edx + 1]
mov dword [ebx + 0x6c], eax
mov eax, dword [ebx + 0x68]
lea ecx, [edx + edx*4]
mov dword [eax + ecx*4 + 8], esi
mov esi, dword [ebp - 0x3c]
mov dword [eax + ecx*4], 0x1d
mov dword [eax + ecx*4 + 4], edi
mov dword [eax + ecx*4 + 0xc], esi
mov dword [eax + ecx*4 + 0x10], 0
mov eax, dword [ebx]
cmp byte [eax + 0x53], 0
jne 0x4746a2
mov eax, dword [ebx + 0x68]
lea ecx, [edx + edx*4]
mov edx, dword [ebp - 0x98]
mov byte [eax + ecx*4 + 1], 0xfd
mov dword [eax + ecx*4 + 0x10], edx
mov edx, dword [ebp - 8]
mov ecx, dword [ebp - 0xc]
mov eax, dword [ebp - 0x84]
xor ebx, ebx
xor esi, esi
mov edi, eax
cmp bx, word [ecx + 0x2a]
jge 0x47475b
mov edi, edi
mov eax, dword [ecx + 4]
movzx eax, word [eax + ebx + 0x10]
test al, 0x60
je 0x47471e
test al, 0x20
je 0x474741
dec edi
jmp 0x474741
mov ecx, dword [ebx + 0x6c]
cmp dword [ebx + 0x70], ecx
jg 0x4746ef
push dword [ebp - 0x18]
push esi
push dword [ebp - 8]
push 0x20
push ebx
call fcn.004380c0
add esp, 0x14
jmp 0x4746a2
mov edx, dword [ebp - 8]
lea eax, [ecx + 1]
mov dword [ebx + 0x6c], eax
mov eax, dword [ebx + 0x68]
mov ebx, dword [ebp - 0x18]
lea ecx, [ecx + ecx*4]
mov dword [eax + ecx*4], 0x20
mov dword [eax + ecx*4 + 4], edx
mov dword [eax + ecx*4 + 8], esi
mov dword [eax + ecx*4 + 0xc], ebx
mov dword [eax + ecx*4 + 0x10], 0
jmp 0x4746a5
mov eax, dword [ebp - 0x1c]
cmp dword [eax + esi*4], 0
jge 0x474741
movsx eax, word [ecx + 0x28]
cmp esi, eax
je 0x474741
push edi
push esi
push edx
push ecx
push dword [ebp - 4]
call fcn.00457a60
mov ecx, dword [ebp - 0xc]
add esp, 0x14
movsx eax, word [ecx + 0x2a]
mov edx, dword [ebp - 8]
inc esi
add ebx, 0x14
inc edi
cmp esi, eax
jl 0x4746c0
mov eax, dword [ebp - 0x84]
test byte [ecx + 0x24], 0x60
je 0x47477d
push ecx
push eax
push dword [ebp + 8]
call fcn.00452ef0
add esp, 0xc
jmp 0x47477a
cmp dword [ebp - 0x64], 0
jne 0x4749ea
mov ecx, dword [ebp - 0xc]
mov esi, dword [ebp - 0x58]
push 0
push dword [ebp - 0x1c]
mov edi, dword [ebp - 8]
lea eax, [ebp - 0x68]
push eax
push esi
push dword [ebp + 0x18]
push dword [ebp - 0x44]
push dword [ebp - 0x18]
push dword [ebp - 0x34]
push dword [ebp - 0x94]
push edi
push dword [ebp - 0x74]
push ecx
push dword [ebp + 8]
call fcn.0045e100
add esp, 0x34
cmp dword [ebp - 0x68], 0
jne 0x4747bf
cmp byte [ebp - 0x44], 0
je 0x474876
cmp dword [ebp - 0x24], 0
mov ebx, dword [ebp - 4]
je 0x474830
mov edx, dword [ebx + 0x6c]
cmp dword [ebx + 0x70], edx
jg 0x4747e4
push dword [ebp - 0x3c]
push esi
push edi
push 0x1d
push ebx
call fcn.004380c0
add esp, 0x14
mov edx, eax
jmp 0x474811
mov esi, dword [ebp - 0x58]
lea eax, [edx + 1]
mov dword [ebx + 0x6c], eax
mov eax, dword [ebx + 0x68]
lea ecx, [edx + edx*4]
mov dword [eax + ecx*4 + 4], edi
mov edi, dword [ebp - 0x3c]
mov dword [eax + ecx*4], 0x1d
mov dword [eax + ecx*4 + 8], esi
mov dword [eax + ecx*4 + 0xc], edi
mov dword [eax + ecx*4 + 0x10], 0
mov eax, dword [ebx]
cmp byte [eax + 0x53], 0
jne 0x474879
mov eax, dword [ebx + 0x68]
lea ecx, [edx + edx*4]
mov edx, dword [ebp - 0x98]
mov byte [eax + ecx*4 + 1], 0xfd
mov dword [eax + ecx*4 + 0x10], edx
jmp 0x474879
mov ecx, dword [ebx + 0x6c]
cmp dword [ebx + 0x70], ecx
jg 0x47484a
push dword [ebp - 0x18]
push esi
push edi
push 0x20
push ebx
call fcn.004380c0
add esp, 0x14
jmp 0x474879
mov edx, dword [ebp - 0x18]
lea eax, [ecx + 1]
mov dword [ebx + 0x6c], eax
mov eax, dword [ebx + 0x68]
lea ecx, [ecx + ecx*4]
mov dword [eax + ecx*4], 0x20
mov dword [eax + ecx*4 + 4], edi
mov dword [eax + ecx*4 + 8], esi
mov dword [eax + ecx*4 + 0xc], edx
mov dword [eax + ecx*4 + 0x10], 0
jmp 0x47487c
mov ebx, dword [ebp - 4]
mov edx, dword [ebp - 0x18]
mov edi, dword [ebp - 0x30]
test edi, edi
je 0x47489d
push dword [ebp - 0xa0]
push dword [ebp - 0x1c]
push 0
push edx
push dword [ebp - 0xc]
push dword [ebp + 8]
call fcn.0045cd80
add esp, 0x18
push 0xffffffffffffffff
push dword [ebp - 0x74]
push dword [ebp - 0x94]
push dword [ebp - 8]
push dword [ebp - 0xc]
push dword [ebp + 8]
call fcn.00460950
add esp, 0x18
cmp dword [ebp - 0xac], 0
je 0x4748df
mov ecx, dword [ebx + 0x6c]
cmp dword [ebx + 0x70], ecx
jg 0x47490b
push 0
push 0
push dword [ebp - 8]
push 0x8b
push ebx
call fcn.004380c0
add esp, 0x14
mov edx, dword [ebp - 8]
cmp edi, 1
jg 0x4748f1
cmp byte [ebp - 0x44], 0
je 0x474971
mov ecx, dword [ebx + 0x6c]
cmp dword [ebx + 0x70], ecx
jg 0x47493f
push 0
push 0
push edx
push 0x7e
push ebx
call fcn.004380c0
add esp, 0x14
jmp 0x474971
mov edx, dword [ebp - 8]
lea eax, [ecx + 1]
mov dword [ebx + 0x6c], eax
mov eax, dword [ebx + 0x68]
lea ecx, [ecx + ecx*4]
mov dword [eax + ecx*4], 0x8b
mov dword [eax + ecx*4 + 4], edx
mov dword [eax + ecx*4 + 8], 0
mov dword [eax + ecx*4 + 0xc], 0
mov dword [eax + ecx*4 + 0x10], 0
jmp 0x4748e2
mov esi, dword [ebp - 0x58]
lea eax, [ecx + 1]
mov dword [ebx + 0x6c], eax
mov eax, dword [ebx + 0x68]
lea ecx, [ecx + ecx*4]
mov dword [eax + ecx*4], 0x7e
mov dword [eax + ecx*4 + 4], edx
mov dword [eax + ecx*4 + 8], 0
mov dword [eax + ecx*4 + 0xc], 0
mov dword [eax + ecx*4 + 0x10], 0
test edi, edi
je 0x474991
push dword [ebp - 0xa0]
push dword [ebp - 0x1c]
push dword [ebp - 0x34]
push 0
push dword [ebp - 0xc]
push dword [ebp + 8]
call fcn.0045cd80
add esp, 0x18
mov edi, dword [ebp - 0x38]
push 0
xor eax, eax
mov ecx, 2
push 0
cmp edi, ecx
cmove eax, ecx
or eax, 4
push eax
push dword [ebp - 0x74]
push dword [ebp - 0x34]
push dword [ebp - 0x94]
push dword [ebp - 8]
push dword [ebp - 0xc]
push dword [ebp + 8]
call fcn.00452d10
add esp, 0x24
cmp dword [ebp - 0x30], 0
je 0x4749f3
push dword [ebp - 0xa0]
push dword [ebp - 0x1c]
push dword [ebp - 0x18]
push dword [ebp + 0x10]
push dword [ebp - 0xc]
push dword [ebp + 8]
call fcn.0045ccf0
add esp, 0x18
jmp 0x4749f3
mov ebx, dword [ebp - 4]
mov esi, dword [ebp - 0x58]
mov edi, dword [ebp - 0x38]
mov edx, dword [ebp - 0xa8]
test edx, edx
je 0x474a49
mov ecx, dword [ebx + 0x6c]
cmp dword [ebx + 0x70], ecx
jg 0x474a17
push 0
push 1
push edx
push 0x53
push ebx
call fcn.004380c0
add esp, 0x14
jmp 0x474a49
mov esi, dword [ebp - 0x58]
lea eax, [ecx + 1]
mov dword [ebx + 0x6c], eax
mov eax, dword [ebx + 0x68]
lea ecx, [ecx + ecx*4]
mov dword [eax + ecx*4], 0x53
mov dword [eax + ecx*4 + 4], edx
mov dword [eax + ecx*4 + 8], 1
mov dword [eax + ecx*4 + 0xc], 0
mov dword [eax + ecx*4 + 0x10], 0
push esi
push dword [ebp + 0x18]
push dword [ebp - 0x18]
push dword [ebp - 0xc]
push 2
push dword [ebp + 0x10]
push 0x80
push dword [ebp - 0x50]
push dword [ebp + 8]
call fcn.00452100
add esp, 0x24
cmp edi, 1
je 0x474b2d
mov ecx, dword [ebx + 0xc]
not esi
mov eax, dword [ecx + 0x3c]
cmp edi, 2
jne 0x474abd
add eax, dword [ecx + 0x38]
jns 0x474aa4
push esi
push ebx
push ecx
call fcn.00445a60
add esp, 0xc
push dword [ebp - 0xb0]
call fcn.00486280
add esp, 4
jmp 0x474b2d
mov ecx, dword [ecx + 0x40]
mov eax, dword [ebx + 0x6c]
push dword [ebp - 0xb0]
mov dword [ecx + esi*4], eax
call fcn.00486280
add esp, 4
jmp 0x474b2d
add eax, dword [ecx + 0x38]
jns 0x474acf
push esi
push ebx
push ecx
call fcn.00445a60
add esp, 0xc
jmp 0x474ad8
mov ecx, dword [ecx + 0x40]
mov eax, dword [ebx + 0x6c]
mov dword [ecx + esi*4], eax
mov ecx, dword [ebx + 0x6c]
cmp dword [ebx + 0x70], ecx
jg 0x474af9
mov edx, dword [ebp - 0x88]
push 0
push edx
push dword [ebp - 0x20]
push 5
push ebx
call fcn.004380c0
add esp, 0x14
jmp 0x474b2d
mov edx, dword [ebp - 0x20]
lea eax, [ecx + 1]
mov dword [ebx + 0x6c], eax
mov eax, dword [ebx + 0x68]
lea ecx, [ecx + ecx*4]
mov dword [eax + ecx*4 + 4], edx
mov edx, dword [ebp - 0x88]
mov dword [eax + ecx*4], 5
mov dword [eax + ecx*4 + 8], edx
mov dword [eax + ecx*4 + 0xc], 0
mov dword [eax + ecx*4 + 0x10], 0
mov ecx, dword [ebx + 0xc]
mov edx, dword [ebp - 0x60]
mov eax, dword [ecx + 0x3c]
add eax, dword [ecx + 0x38]
not edx
jns 0x474b4a
push edx
push ebx
push ecx
call fcn.00445a60
add esp, 0xc
jmp 0x474b53
mov ecx, dword [ecx + 0x40]
mov eax, dword [ebx + 0x6c]
mov dword [ecx + edx*4], eax
mov eax, dword [ebp + 8]
cmp byte [eax + 0x12], 0
jne 0x474b77
cmp dword [eax + 0x78], 0
jne 0x474b77
cmp dword [ebp + 0x24], 0
jne 0x474b77
cmp dword [eax + 0x70], 0
je 0x474b77
push eax
call fcn.00425190
add esp, 4
mov edx, dword [ebp - 0xa8]
test edx, edx
je 0x474cfe
mov ecx, dword [ebx + 0x6c]
cmp dword [ebx + 0x70], ecx
jg 0x474b9f
push 0
push 1
push edx
push 0x50
push ebx
call fcn.004380c0
add esp, 0x14
jmp 0x474bce
lea eax, [ecx + 1]
mov dword [ebx + 0x6c], eax
mov eax, dword [ebx + 0x68]
lea ecx, [ecx + ecx*4]
mov dword [eax + ecx*4], 0x50
mov dword [eax + ecx*4 + 4], edx
mov dword [eax + ecx*4 + 8], 1
mov dword [eax + ecx*4 + 0xc], 0
mov dword [eax + ecx*4 + 0x10], 0
movzx eax, word [ebx + 0x90]
mov esi, dword [ebx]
test ax, ax
je 0x474ca2
add eax, eax
push eax
push dword [ebx + 0x74]
call fcn.00443fa0
mov edi, dword [ebx + 0x74]
add esp, 8
test edi, edi
je 0x474ca2
test esi, esi
je 0x474c4d
cmp dword [esi + 0x200], 0
je 0x474c15
push edi
push esi
call fcn.0043b110
add esp, 8
jmp 0x474ca2
cmp edi, dword [esi + 0x154]
jae 0x474c4d
cmp edi, dword [esi + 0x14c]
jb 0x474c35
mov eax, dword [esi + 0x148]
mov dword [edi], eax
mov dword [esi + 0x148], edi
jmp 0x474ca2
cmp edi, dword [esi + 0x150]
jb 0x474c4d
mov eax, dword [esi + 0x140]
mov dword [edi], eax
mov dword [esi + 0x140], edi
jmp 0x474ca2
cmp dword [0x4d9c10], 0
je 0x474c98
mov eax, dword [0x4dacf0]
test eax, eax
je 0x474c69
push eax
call dword [0x4d9c60]
add esp, 4
push edi
call dword [0x4d9c3c]
sub dword [0x4dac98], eax
dec dword [0x4dacbc]
push edi
call dword [0x4d9c34]
mov eax, dword [0x4dacf0]
add esp, 8
test eax, eax
je 0x474ca2
push eax
call dword [0x4d9c68]
jmp 0x474c9f
push edi
call dword [0x4d9c34]
add esp, 4
push 0
push 0x50
mov edi, 1
push esi
mov word [ebx + 0x90], di
call fcn.00454b30
add esp, 0xc
mov dword [ebx + 0x74], eax
test eax, eax
je 0x474cde
mov dword [eax + 0x20], esi
mov word [eax + 8], di
mov dword [eax + 0x18], 0
mov dword [eax + 0x48], esi
mov word [eax + 0x30], di
mov dword [eax + 0x40], 0
mov eax, dword [ebx]
cmp byte [eax + 0x53], 0
jne 0x474cfe
push 0
push 1
push 0xffffffffffffffff
push 0xffffffffffffffff
push str.rows_updated
push dword [ebx + 0x74]
call fcn.0047ee20
add esp, 0x18
mov edi, dword [ebp - 0x1c]
mov ebx, dword [ebp - 0x28]
mov esi, dword [ebp + 0x10]
mov ecx, dword [ebp - 0xb4]
test ecx, ecx
je 0x474d1d
mov eax, dword [ebp - 0xb8]
mov dword [ecx + 0xf0], eax
test edi, edi
je 0x474dce
test ebx, ebx
je 0x474d79
cmp dword [ebx + 0x200], 0
je 0x474d41
push edi
push ebx
call fcn.0043b110
add esp, 8
jmp 0x474dce
cmp edi, dword [ebx + 0x154]
jae 0x474d79
cmp edi, dword [ebx + 0x14c]
jb 0x474d61
mov eax, dword [ebx + 0x148]
mov dword [edi], eax
mov dword [ebx + 0x148], edi
jmp 0x474dce
cmp edi, dword [ebx + 0x150]
jb 0x474d79
mov eax, dword [ebx + 0x140]
mov dword [edi], eax
mov dword [ebx + 0x140], edi
jmp 0x474dce
cmp dword [0x4d9c10], 0
je 0x474dc4
mov eax, dword [0x4dacf0]
test eax, eax
je 0x474d95
push eax
call dword [0x4d9c60]
add esp, 4
push edi
call dword [0x4d9c3c]
sub dword [0x4dac98], eax
dec dword [0x4dacbc]
push edi
call dword [0x4d9c34]
mov eax, dword [0x4dacf0]
add esp, 8
test eax, eax
je 0x474dce
push eax
call dword [0x4d9c68]
jmp 0x474dcb
push edi
call dword [0x4d9c34]
add esp, 4
push dword [ebp + 0xc]
push ebx
call fcn.00470ab0
add esp, 8
test esi, esi
je 0x474de8
push esi
push ebx
call fcn.004328f0
add esp, 8
mov eax, dword [ebp + 0x14]
test eax, eax
je 0x474df9
push eax
push ebx
call fcn.0045a030
add esp, 8
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret