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

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff0
sub esp, 0xd8
xor eax, eax
mov dword [esp + 0x58], edx
push esi
push edi
mov edi, ecx
mov dword [esp + 0xb4], eax
mov dword [esp + 0x34], eax
xorps xmm0, xmm0
mov dword [esp + 0x78], eax
mov dword [esp + 0x6c], eax
cmp dword [edi + 0x24], 0
mov dword [esp + 0x74], eax
mov dword [esp + 0x2c], eax
mov dword [esp + 0x48], eax
mov dword [esp + 0x90], eax
mov dword [esp + 0x8c], eax
mov dword [esp + 0x28], eax
mov dword [esp + 0x4c], eax
mov eax, dword [edi]
mov dword [esp + 0x10], edi
mov dword [esp + 0xb0], 0
mov dword [esp + 0x20], 0
mov dword [esp + 0x88], 0
mov dword [esp + 0x64], 0
mov dword [esp + 0x94], 0
movq qword [esp + 0xb8], xmm0
mov dword [esp + 0x54], eax
jne 0x4ad667
cmp byte [eax + 0x45], 0
jne 0x4ad667
call fcn.00491cc0
mov esi, eax
mov dword [esp + 0x14], esi
test esi, esi
je 0x4ad667
mov ecx, dword [edi]
mov edx, dword [esi + 0x48]
call fcn.004a0c80
mov dword [esp + 0x40], eax
mov edx, esi
lea eax, [esp + 0xac]
mov ecx, edi
push eax
push dword [ebp + 8]
push 0x6e
call fcn.004ac700
add esp, 0xc
mov dword [esp + 0x50], eax
mov eax, dword [esi + 0xc]
mov edx, esi
mov ecx, edi
mov dword [esp + 0x7c], eax
call fcn.0048dca0
test eax, eax
jne 0x4ad667
push dword [esp + 0xac]
mov edx, esi
mov ecx, edi
call fcn.00491d60
add esp, 4
test eax, eax
jne 0x4ad667
mov eax, dword [edi + 0x28]
mov ecx, dword [esp + 0x60]
mov dword [esp + 0x18], eax
mov dword [esp + 0x84], eax
mov dword [ecx + 0x38], eax
inc eax
inc dword [edi + 0x28]
test byte [esi + 0x24], 0x20
mov edx, dword [edi + 0x28]
mov dword [esp + 0x9c], eax
jne 0x4ad31a
mov dword [esp + 0x38], 0
jmp 0x4ad325
mov ecx, esi
call fcn.0048bfa0
mov dword [esp + 0x38], eax
mov ecx, dword [esi + 8]
mov dword [esp + 0x68], 0
test ecx, ecx
je 0x4ad369
xor esi, esi
mov eax, dword [ecx + 0x38]
and al, 3
cmp al, 2
jne 0x4ad353
cmp dword [esp + 0x38], 0
je 0x4ad353
mov eax, edx
mov edx, dword [esp + 0x60]
mov dword [esp + 0x18], eax
mov dword [edx + 0x38], eax
inc dword [edi + 0x28]
inc esi
mov ecx, dword [ecx + 0x14]
mov edx, dword [edi + 0x28]
test ecx, ecx
jne 0x4ad336
mov dword [esp + 0x68], esi
mov esi, dword [esp + 0x14]
movsx eax, word [esi + 0x2a]
add eax, dword [esp + 0x68]
mov ecx, dword [esp + 0x54]
push 0
lea eax, [eax*4 + 2]
add eax, dword [esp + 0x6c]
push eax
call fcn.0044ea10
mov ecx, eax
add esp, 8
mov dword [esp + 0x20], ecx
test ecx, ecx
je 0x4ad667
movsx eax, word [esi + 0x2a]
lea ecx, [ecx + eax*4]
mov eax, dword [esp + 0x68]
mov dword [esp + 0x98], ecx
lea ecx, [ecx + eax*4]
inc eax
push eax
push 1
push ecx
mov dword [esp + 0x3c], ecx
call fcn.004e7b30
mov eax, dword [esp + 0x74]
add esp, 0xc
mov ecx, dword [esp + 0x30]
mov byte [ecx + eax + 1], 0
xor eax, eax
xor ecx, ecx
cmp ax, word [esi + 0x2a]
jge 0x4ad3f4
mov edi, dword [esp + 0x20]
nop word [eax + eax]
mov dword [edi + ecx*4], 0xffffffff
inc ecx
movsx eax, word [esi + 0x2a]
cmp ecx, eax
jl 0x4ad3e0
mov edi, dword [esp + 0x10]
mov eax, dword [esp + 0x60]
xorps xmm0, xmm0
mov edx, dword [ebp + 8]
xor cl, cl
movaps xmmword [esp + 0xc0], xmm0
mov dword [esp + 0xc4], eax
xor al, al
movaps xmmword [esp + 0xd0], xmm0
cmp dword [edx], 0
mov dword [esp + 0xc0], edi
mov dword [esp + 0x58], eax
mov byte [esp + 0x1f], cl
mov dword [esp + 0x24], 0
jle 0x4ad62e
lea edi, [edx + 8]
mov dword [esp + 0x44], edi
mov edx, dword [edi]
lea ecx, [esp + 0xc0]
call fcn.00480030
test eax, eax
jne 0x4ad667
mov edx, dword [esp + 0x14]
xor esi, esi
mov dword [esp + 0x3c], esi
movsx eax, word [edx + 0x2a]
test eax, eax
jle 0x4ad4e7
mov eax, dword [edx + 4]
mov edi, dword [edi + 4]
mov dword [esp + 0x70], edi
mov dword [esp + 0x5c], eax
mov esi, dword [eax]
movzx eax, byte [edi]
mov dl, byte [esi]
movzx ecx, byte [eax + 0x680668]
movzx eax, dl
movzx eax, byte [eax + 0x680668]
sub eax, ecx
jne 0x4ad4c3
sub edi, esi
test dl, dl
je 0x4ad4b7
movzx eax, byte [esi + edi + 1]
inc esi
movzx ecx, byte [eax + 0x680668]
mov dl, byte [esi]
movzx eax, dl
movzx eax, byte [eax + 0x680668]
sub eax, ecx
je 0x4ad494
jmp 0x4ad4bf
test eax, eax
je 0x4ad54d
mov edi, dword [esp + 0x70]
mov edx, dword [esp + 0x14]
mov esi, dword [esp + 0x3c]
mov eax, dword [esp + 0x5c]
inc esi
add eax, 0x10
mov dword [esp + 0x3c], esi
movsx ecx, word [edx + 0x2a]
mov dword [esp + 0x5c], eax
cmp esi, ecx
jl 0x4ad476
mov edi, dword [esp + 0x44]
movsx eax, word [edx + 0x2a]
cmp esi, eax
jl 0x4ad5b5
cmp dword [esp + 0x38], 0
jne 0x4ad643
mov esi, dword [edi + 4]
mov edx, str._ROWID_
mov ecx, esi
call fcn.004517f0
test eax, eax
je 0x4ad535
mov edx, str.ROWID
mov ecx, esi
call fcn.004517f0
test eax, eax
je 0x4ad535
mov edx, 0x713f64
mov ecx, esi
call fcn.004517f0
test eax, eax
jne 0x4ad643
mov eax, dword [edi]
or esi, 0xffffffff
mov byte [esp + 0x1f], 1
mov edx, str.ROWID
mov dword [esp + 0x88], eax
jmp 0x4ad5ca
mov edx, dword [esp + 0x14]
mov esi, dword [esp + 0x3c]
mov edi, dword [esp + 0x44]
movsx eax, word [edx + 0x28]
cmp esi, eax
jne 0x4ad57f
mov eax, dword [edi]
mov ecx, dword [esp + 0x20]
mov dword [esp + 0x88], eax
mov eax, dword [esp + 0x24]
mov byte [esp + 0x1f], 1
mov dword [ecx + esi*4], eax
jmp 0x4ad4e7
cmp dword [esp + 0x38], 0
je 0x4ad5a5
mov ecx, dword [edx + 4]
mov eax, esi
add eax, eax
test byte [ecx + eax*8 + 0xf], 1
mov ecx, 1
mov eax, dword [esp + 0x58]
movzx eax, al
cmovne eax, ecx
mov dword [esp + 0x58], eax
mov ecx, dword [esp + 0x20]
mov eax, dword [esp + 0x24]
mov dword [ecx + esi*4], eax
jmp 0x4ad4e7
test esi, esi
jns 0x4ad5c0
mov edx, str.ROWID
jmp 0x4ad5ca
mov eax, dword [edx + 4]
mov ecx, esi
add ecx, ecx
mov edx, dword [eax + ecx*8]
mov eax, dword [esp + 0x54]
mov ecx, dword [esp + 0x40]
add ecx, ecx
mov eax, dword [eax + 0x10]
push dword [eax + ecx*8]
mov ecx, dword [esp + 0x14]
push edx
mov edx, dword [esp + 0x1c]
push dword [edx]
mov edx, 0x17
call fcn.0048aca0
add esp, 0xc
cmp eax, 1
je 0x4ad667
cmp eax, 2
jne 0x4ad607
mov eax, dword [esp + 0x20]
mov dword [eax + esi*4], 0xffffffff
mov esi, dword [esp + 0x24]
add edi, 0x18
mov eax, dword [ebp + 8]
inc esi
mov dword [esp + 0x24], esi
mov dword [esp + 0x44], edi
cmp esi, dword [eax]
jl 0x4ad440
mov esi, dword [esp + 0x14]
mov eax, dword [esp + 0x58]
mov cl, byte [esp + 0x1f]
cmp dword [esi + 0x38], 0
lea edx, [ecx + eax]
mov byte [esp + 0x44], dl
je 0x4ad677
or eax, 0xffffffff
or ecx, 0xffffffff
jmp 0x4ad691
mov eax, dword [esp + 0x24]
mov ecx, dword [ebp + 8]
mov esi, dword [esp + 0x10]
lea eax, [eax + eax*2]
push dword [ecx + eax*8 + 0xc]
push str.no_such_column:__s
push esi
call fcn.00451630
add esp, 0xc
mov byte [esi + 0x11], 1
mov ecx, dword [esp + 0xbc]
mov esi, dword [esp + 0x54]
jmp 0x4aeab3
xorps xmm0, xmm0
movlpd qword [esp + 0xa0], xmm0
mov ecx, dword [esp + 0xa4]
mov eax, dword [esp + 0xa0]
mov edi, dword [esp + 0x60]
mov dword [edi + 0x48], eax
mov eax, edi
mov edi, dword [esp + 0x10]
mov dword [eax + 0x4c], ecx
mov ecx, edi
movzx eax, dl
mov edx, esi
push eax
push dword [esp + 0x24]
mov dword [esp + 0x78], eax
call fcn.00497c60
mov esi, dword [esi + 8]
xor edx, edx
add esp, 8
mov dword [esp + 0x3c], eax
mov dword [esp + 0x24], edx
test esi, esi
je 0x4ad788
nop
cmp byte [esp + 0x44], 0
jne 0x4ad8dc
cmp eax, 1
jg 0x4ad8dc
cmp dword [esi + 0x24], 0
jne 0x4ad8dc
cmp esi, dword [esp + 0x38]
je 0x4ad8dc
movzx edi, word [esi + 0x32]
xor ecx, ecx
xor edx, edx
mov dword [esp + 0xa0], ecx
test edi, edi
je 0x4ad73e
mov ecx, dword [esi + 4]
nop
movzx eax, word [ecx]
test ax, ax
js 0x4ad89d
mov edi, dword [esp + 0x20]
cwde
cmp dword [edi + eax*4], 0
movzx edi, word [esi + 0x32]
jge 0x4ad89d
inc edx
add ecx, 2
cmp edx, edi
jl 0x4ad710
mov ecx, dword [esp + 0xa0]
mov edx, dword [esp + 0x24]
mov eax, dword [esp + 0x30]
mov byte [edx + eax + 1], 0
mov eax, dword [esp + 0x98]
mov edi, dword [esp + 0x10]
mov dword [eax + edx*4], ecx
inc edx
mov esi, dword [esi + 0x14]
mov eax, dword [esp + 0x3c]
mov dword [esp + 0x24], edx
test esi, esi
jne 0x4ad6d0
cmp dword [esp + 0x6c], 0
je 0x4ad788
mov eax, dword [esp + 0x68]
inc eax
push eax
push 1
push dword [esp + 0x38]
call fcn.004e7b30
add esp, 0xc
mov edi, dword [edi + 8]
test edi, edi
jne 0x4ad7a2
mov ecx, dword [esp + 0x10]
call fcn.004a43b0
mov edi, eax
test edi, edi
je 0x4ad667
mov ecx, dword [esp + 0x10]
cmp byte [ecx + 0x12], 0
jne 0x4ad7b3
or dword [edi + 0x94], 0x10
mov eax, dword [ecx + 0x78]
mov edx, ecx
test eax, eax
mov esi, ecx
mov ecx, dword [esp + 0x40]
cmovne edx, eax
cmovne esi, eax
mov eax, 1
shl eax, cl
mov ecx, dword [edx + 0x5c]
test ecx, eax
jne 0x4ad7ea
mov eax, dword [esp + 0x40]
bts ecx, eax
mov dword [edx + 0x5c], ecx
cmp eax, 1
jne 0x4ad7ea
mov ecx, edx
call fcn.00490670
mov eax, dword [esi + 0x58]
mov ecx, dword [esp + 0x40]
bts eax, ecx
mov ecx, dword [esp + 0x14]
or byte [esi + 0x14], 1
mov dword [esi + 0x58], eax
mov esi, dword [esp + 0x10]
cmp dword [ecx + 0x38], 0
jne 0x4ad87a
mov eax, dword [esi + 0x2c]
inc eax
cmp byte [esp + 0x58], 0
mov dword [esp + 0x28], eax
lea edx, [eax + 1]
mov dword [esp + 0x48], edx
mov dword [esi + 0x2c], edx
mov dword [esp + 0x2c], edx
jne 0x4ad835
cmp dword [esp + 0x50], 0
jne 0x4ad835
mov eax, dword [esp + 0x3c]
test eax, eax
je 0x4ad84c
lea eax, [edx + 1]
mov dword [esp + 0x8c], eax
movsx eax, word [ecx + 0x2a]
add eax, edx
mov dword [esi + 0x2c], eax
mov eax, dword [esp + 0x3c]
cmp byte [esp + 0x44], 0
jne 0x4ad85e
cmp dword [esp + 0x50], 0
jne 0x4ad85e
test eax, eax
je 0x4ad868
inc dword [esi + 0x2c]
mov eax, dword [esi + 0x2c]
mov dword [esp + 0x48], eax
mov eax, dword [esi + 0x2c]
inc eax
mov dword [esp + 0x90], eax
movsx eax, word [ecx + 0x2a]
add dword [esi + 0x2c], eax
mov edx, dword [esp + 0x7c]
test edx, edx
je 0x4ad8ed
mov eax, dword [esi + 0x1b8]
mov dword [esp + 0xb8], eax
mov eax, dword [ecx]
mov dword [esp + 0x24], esi
mov dword [esi + 0x1b8], eax
jmp 0x4ad8f8
mov edi, dword [esp + 0x10]
inc dword [edi + 0x2c]
movzx eax, word [esi + 0x34]
mov ecx, dword [edi + 0x2c]
add eax, ecx
mov dword [edi + 0x2c], eax
mov eax, dword [ebp + 0x10]
cmp eax, 5
je 0x4ad8c3
cmp eax, 0xa
jne 0x4ad8cb
cmp byte [esi + 0x36], 5
jne 0x4ad8cb
mov dword [esp + 0x6c], 1
mov edx, dword [esp + 0x24]
test ecx, ecx
jne 0x4ad74b
jmp 0x4ad742
inc dword [edi + 0x2c]
movzx eax, word [esi + 0x34]
mov ecx, dword [edi + 0x2c]
add eax, ecx
mov dword [edi + 0x2c], eax
jmp 0x4ad8cf
mov eax, dword [esp + 0xbc]
mov dword [esp + 0x24], eax
test edx, edx
je 0x4ad90f
push dword [esp + 0x18]
mov edx, ecx
mov ecx, esi
push dword [ebp + 0xc]
call fcn.00491de0
add esp, 8
mov edx, dword [ebp + 0xc]
lea ecx, [esp + 0xc0]
call fcn.00480030
test eax, eax
jne 0x4aeaab
mov ecx, dword [esp + 0x14]
cmp dword [ecx + 0x38], eax
je 0x4ad961
mov eax, dword [ebp + 0x10]
mov edi, dword [esp + 0x20]
mov edx, dword [esp + 0x60]
push eax
push dword [ebp + 0xc]
push edi
push dword [esp + 0x94]
push dword [ebp + 8]
push ecx
mov ecx, esi
call fcn.004aeb50
mov ecx, dword [esp + 0x3c]
add esp, 0x18
mov esi, dword [esp + 0x54]
jmp 0x4aeab7
mov eax, dword [esp + 0x54]
test byte [eax + 0x18], 0x80
je 0x4ad991
cmp dword [esi + 0x7c], 0
jne 0x4ad991
inc dword [esi + 0x2c]
mov edx, 0x38
mov eax, dword [esi + 0x2c]
mov ecx, edi
push eax
push 0
mov dword [esp + 0x7c], eax
call fcn.0046bc70
mov ecx, dword [esp + 0x1c]
add esp, 8
test byte [ecx + 0x24], 0x20
jne 0x4ad9fb
mov eax, dword [edi + 0xc]
mov ecx, dword [edi + 0x88]
mov esi, dword [esp + 0x28]
cmp dword [eax + 0x30], ecx
jg 0x4ad9c4
push dword [esp + 0x2c]
mov edx, 0x3b
mov ecx, edi
push esi
push 0
call fcn.0046bae0
add esp, 0xc
jmp 0x4adaec
mov edx, dword [esp + 0x2c]
lea eax, [ecx + 1]
mov dword [edi + 0x88], eax
lea ecx, [ecx + ecx*4]
mov eax, dword [edi + 0x58]
mov dword [eax + ecx*4], 0x3b
mov dword [eax + ecx*4 + 4], 0
mov dword [eax + ecx*4 + 8], esi
mov dword [eax + ecx*4 + 0xc], edx
mov dword [eax + ecx*4 + 0x10], 0
jmp 0x4adaec
mov ecx, dword [esp + 0x10]
mov eax, dword [esp + 0x38]
mov edx, dword [esi + 0x2c]
inc edx
mov dword [esp + 0x34], edx
movzx eax, word [eax + 0x32]
mov dword [esp + 0x78], eax
movsx esi, ax
mov eax, dword [ecx + 0x2c]
inc eax
add eax, esi
mov dword [ecx + 0x2c], eax
mov dword [esp + 0x4c], eax
mov eax, dword [ecx + 0x28]
mov dword [esp + 0x64], eax
inc eax
mov dword [ecx + 0x28], eax
mov eax, dword [edi + 0xc]
mov ecx, dword [edi + 0x88]
cmp dword [eax + 0x30], ecx
jg 0x4ada52
push 0
push edx
push 0
mov edx, 0x3b
mov ecx, edi
call fcn.0046bae0
add esp, 0xc
jmp 0x4ada88
mov edx, dword [esp + 0x34]
lea eax, [ecx + 1]
mov dword [edi + 0x88], eax
lea ecx, [ecx + ecx*4]
mov eax, dword [edi + 0x58]
mov dword [eax + ecx*4], 0x3b
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
push esi
push dword [esp + 0x68]
mov edx, 0x6c
mov ecx, edi
call fcn.0046bc70
mov edx, dword [esp + 0x40]
add esp, 8
mov dword [esp + 0xb4], eax
mov eax, dword [esp + 0x10]
mov ecx, eax
mov esi, dword [eax + 8]
call fcn.00490f40
mov edx, eax
test edx, edx
je 0x4adae8
mov ecx, dword [esi]
cmp byte [ecx + 0x45], 0
je 0x4adad3
push edx
mov edx, 0xfffffff7
call fcn.0046c6c0
add esp, 4
jmp 0x4adae8
mov eax, dword [esi + 0x88]
lea ecx, [eax + eax*4]
mov eax, dword [esi + 0x58]
mov byte [eax + ecx*4 - 0x13], 0xf7
mov dword [eax + ecx*4 - 4], edx
mov esi, dword [esp + 0x28]
mov ecx, dword [esp + 0x10]
mov eax, 0x1004
cmp byte [ecx + 0x12], 0
jne 0x4adb1d
cmp dword [esp + 0x50], 0
jne 0x4adb1d
cmp dword [esp + 0x3c], 0
jne 0x4adb1d
cmp byte [esp + 0x44], 0
jne 0x4adb1d
cmp dword [esp + 0x6c], 0
mov edx, 0x100c
cmove eax, edx
push dword [esp + 0x9c]
mov edx, dword [esp + 0x64]
push eax
push 0
push 0
push dword [ebp + 0xc]
call fcn.004bba00
mov ecx, eax
add esp, 0x14
mov dword [esp + 0xa0], ecx
test ecx, ecx
je 0x4aeaab
mov eax, dword [ecx + 0x18]
movzx edx, byte [ecx + 0x31]
mov dword [esp + 0x80], eax
mov eax, dword [ecx + 0x1c]
mov dword [esp + 0x5c], eax
mov dword [esp + 0x40], edx
cmp edx, 2
jne 0x4adb8c
test eax, eax
js 0x4adb8c
cmp eax, dword [esp + 0x18]
je 0x4adb8c
sub eax, dword [esp + 0x84]
mov ecx, dword [esp + 0x30]
cmp byte [eax + ecx], 0
mov eax, 0
cmovne edx, eax
mov dword [esp + 0x40], edx
mov ecx, dword [esp + 0x14]
test byte [ecx + 0x24], 0x20
jne 0x4adbd2
push dword [esp + 0x2c]
mov edx, 0x7b
mov ecx, edi
push dword [esp + 0x1c]
call fcn.0046bc70
mov edx, dword [esp + 0x48]
add esp, 8
test edx, edx
jne 0x4adc6c
push dword [esp + 0x2c]
mov edx, 0x8f
mov ecx, edi
push esi
call fcn.0046bc70
add esp, 8
jmp 0x4adcc4
mov eax, dword [esp + 0x78]
xor esi, esi
cwde
test eax, eax
jle 0x4adc1a
nop dword [eax]
mov eax, dword [esp + 0x34]
mov edx, ecx
add eax, esi
mov ecx, edi
push eax
mov eax, dword [esp + 0x3c]
mov eax, dword [eax + 4]
movsx eax, word [eax + esi*2]
push eax
push dword [esp + 0x20]
call fcn.00485050
mov ecx, dword [esp + 0x84]
inc esi
movsx eax, cx
add esp, 0xc
mov ecx, dword [esp + 0x14]
cmp esi, eax
jl 0x4adbe0
mov edx, dword [esp + 0x40]
test edx, edx
je 0x4adc73
mov ecx, dword [edi]
cmp byte [ecx + 0x45], 0
jne 0x4adc56
mov eax, dword [esp + 0xb4]
lea edx, [eax + eax*4]
mov eax, dword [edi + 0x58]
push dword [eax + edx*4 + 0x10]
lea esi, [eax + edx*4]
movsx edx, byte [esi + 1]
call fcn.0046c6c0
mov edx, dword [esp + 0x44]
add esp, 4
mov word [esi], 0xa6
mov dword [esi + 0x10], 0
mov eax, dword [esp + 0x78]
movsx esi, ax
mov eax, dword [esp + 0x34]
mov dword [esp + 0x94], esi
mov dword [esp + 0x4c], eax
cmp edx, 2
je 0x4adcd0
jmp 0x4adcc4
mov edx, dword [esp + 0x38]
push eax
push ecx
mov ecx, dword [esp + 0x5c]
call fcn.00498870
add esp, 4
mov edx, 0x63
mov ecx, edi
push eax
push dword [esp + 0x54]
mov eax, dword [esp + 0x84]
movsx esi, ax
push esi
push dword [esp + 0x44]
call fcn.0046bf20
add esp, 0x14
mov edx, 0x7e
mov ecx, edi
push esi
push dword [esp + 0x38]
push dword [esp + 0x54]
push dword [esp + 0x70]
call fcn.0046c020
add esp, 0x10
mov ecx, dword [esp + 0xa0]
call fcn.004bc470
mov esi, dword [edi + 0xc]
mov ecx, dword [esi + 0x44]
mov dword [esp + 0x34], ecx
lea eax, [ecx + 1]
mov dword [esi + 0x44], eax
lea eax, [ecx - 1]
test ecx, eax
jne 0x4add05
mov edx, dword [esi + 0x48]
lea eax, [ecx*8 + 4]
mov ecx, dword [esi]
push 0
push eax
call fcn.0044ebb0
mov ecx, dword [esp + 0x3c]
add esp, 8
mov dword [esi + 0x48], eax
mov eax, dword [esi + 0x48]
test eax, eax
je 0x4add13
mov dword [eax + ecx*4], 0xffffffff
mov eax, dword [esp + 0x7c]
not ecx
mov dword [esp + 0x34], ecx
test eax, eax
jne 0x4adde5
mov edx, dword [esp + 0x40]
xor esi, esi
test edx, edx
je 0x4add68
mov eax, dword [esp + 0x80]
test eax, eax
js 0x4add49
sub eax, dword [esp + 0x84]
mov ecx, dword [esp + 0x30]
mov byte [eax + ecx], 0
mov ecx, dword [esp + 0x5c]
test ecx, ecx
js 0x4add6c
mov edx, dword [esp + 0x30]
mov eax, ecx
sub eax, dword [esp + 0x84]
mov byte [eax + edx], 0
mov edx, dword [esp + 0x40]
jmp 0x4add6c
mov ecx, dword [esp + 0x5c]
cmp edx, 2
jne 0x4add90
xor eax, eax
test ecx, ecx
mov ecx, dword [esp + 0x68]
setns al
sub ecx, eax
test ecx, ecx
jle 0x4add90
mov edx, 0x14
mov ecx, edi
call fcn.0046bb90
mov esi, eax
mov edx, dword [esp + 0x14]
mov ecx, dword [esp + 0x10]
push 0
push 0
push dword [esp + 0x38]
push dword [esp + 0x90]
push 0
push 0x69
call fcn.0049b6c0
add esp, 0x18
test esi, esi
je 0x4adddd
mov edx, dword [edi + 0x88]
jns 0x4addc2
lea esi, [edx - 1]
mov eax, dword [edi]
cmp byte [eax + 0x45], 0
je 0x4addd1
mov eax, 0x729e0c
jmp 0x4addda
mov eax, dword [edi + 0x58]
lea ecx, [esi + esi*4]
lea eax, [eax + ecx*4]
mov dword [eax + 8], edx
mov eax, dword [esp + 0x7c]
mov ecx, dword [esp + 0x34]
mov esi, dword [esp + 0x40]
test esi, esi
je 0x4adee8
test eax, eax
jne 0x4ade24
mov eax, dword [esp + 0x18]
cmp dword [esp + 0x80], eax
je 0x4ade24
cmp dword [esp + 0x5c], eax
je 0x4ade24
push dword [esp + 0x94]
mov edx, 0x1d
push dword [esp + 0x50]
push ecx
push eax
mov ecx, edi
call fcn.0046c020
add esp, 0x10
cmp esi, 1
jne 0x4ade33
mov esi, dword [esp + 0x34]
mov dword [esp + 0x28], esi
jmp 0x4ade80
mov esi, dword [edi + 0xc]
mov ecx, dword [esi + 0x44]
mov dword [esp + 0x28], ecx
lea eax, [ecx + 1]
mov dword [esi + 0x44], eax
lea eax, [ecx - 1]
test ecx, eax
jne 0x4ade68
mov edx, dword [esi + 0x48]
lea eax, [ecx*8 + 4]
mov ecx, dword [esi]
push 0
push eax
call fcn.0044ebb0
mov ecx, dword [esp + 0x30]
add esp, 8
mov dword [esi + 0x48], eax
mov eax, dword [esi + 0x48]
test eax, eax
je 0x4ade76
mov dword [eax + ecx*4], 0xffffffff
mov esi, dword [esp + 0x34]
not ecx
mov dword [esp + 0x28], ecx
cmp dword [esp + 0x38], 0
mov eax, dword [edi + 0xc]
mov edx, dword [esp + 0x2c]
cmovne edx, dword [esp + 0x4c]
mov ecx, dword [edi + 0x88]
cmp dword [eax + 0x30], ecx
jg 0x4adeb1
push 0
push esi
push edx
mov edx, 0x4b
mov ecx, edi
call fcn.0046bae0
jmp 0x4adfb7
mov esi, dword [esp + 0x34]
lea eax, [ecx + 1]
mov dword [edi + 0x88], eax
lea ecx, [ecx + ecx*4]
mov eax, dword [edi + 0x58]
mov dword [eax + ecx*4], 0x4b
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
jmp 0x4adfba
cmp dword [esp + 0x38], 0
je 0x4adf88
mov esi, dword [edi + 0xc]
mov ecx, dword [esi + 0x44]
mov dword [esp + 0x28], ecx
lea eax, [ecx + 1]
mov dword [esi + 0x44], eax
lea eax, [ecx - 1]
test ecx, eax
jne 0x4adf28
mov edx, dword [esi + 0x48]
lea eax, [ecx*8 + 4]
mov ecx, dword [esi]
push 0
push eax
call fcn.0044ebb0
mov ecx, dword [esp + 0x30]
add esp, 8
mov dword [esi + 0x48], eax
mov eax, dword [esi + 0x48]
test eax, eax
je 0x4adf36
mov dword [eax + ecx*4], 0xffffffff
push dword [esp + 0x34]
not ecx
mov edx, 0x25
push dword [esp + 0x68]
mov dword [esp + 0x30], ecx
mov ecx, edi
call fcn.0046bc70
mov esi, dword [esp + 0x54]
mov edx, 0x7a
push esi
push dword [esp + 0x70]
mov ecx, edi
call fcn.0046bc70
push 0
push esi
push dword [esp + 0x40]
mov edx, 0x1d
mov dword [esp + 0xcc], eax
push dword [esp + 0x34]
mov ecx, edi
call fcn.0046c020
add esp, 0x20
jmp 0x4adfba
mov esi, dword [esp + 0x2c]
mov edx, 0x2a
push esi
push ecx
push dword [esp + 0x30]
mov ecx, edi
call fcn.0046bb20
add esp, 0xc
mov dword [esp + 0x28], eax
mov edx, 0x20
mov ecx, edi
push esi
push eax
push dword [esp + 0x20]
call fcn.0046bb20
add esp, 0xc
cmp byte [esp + 0x1f], 0
je 0x4ae078
mov eax, dword [esp + 0x88]
test eax, eax
je 0x4adfeb
cmp byte [eax], 0x9d
jne 0x4adfeb
mov esi, dword [esp + 0x10]
mov edx, dword [esp + 0x48]
push edx
push dword [eax + 0x1c]
mov ecx, dword [esi + 8]
mov edx, 0x40
jmp 0x4ae016
mov edx, dword [esp + 0x48]
mov esi, dword [esp + 0x10]
mov ecx, esi
push edx
mov edx, eax
call fcn.004853c0
mov edx, dword [esp + 0x4c]
add esp, 4
cmp eax, edx
je 0x4ae022
mov ecx, dword [esi + 8]
test ecx, ecx
je 0x4ae022
push edx
push eax
mov edx, 0x41
call fcn.0046bc70
mov edx, dword [esp + 0x50]
add esp, 8
mov eax, dword [edi + 0xc]
mov ecx, dword [edi + 0x88]
cmp dword [eax + 0x30], ecx
jg 0x4ae046
push 0
push 0
push edx
mov edx, 0x11
mov ecx, edi
call fcn.0046bae0
add esp, 0xc
jmp 0x4ae078
lea eax, [ecx + 1]
mov dword [edi + 0x88], eax
lea ecx, [ecx + ecx*4]
mov eax, dword [edi + 0x58]
mov dword [eax + ecx*4], 0x11
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 [esp + 0x58], 0
jne 0x4ae13f
cmp dword [esp + 0x3c], 0
jne 0x4ae14a
mov edx, dword [esp + 0x50]
test edx, edx
je 0x4ae249
xor eax, eax
mov edx, dword [esp + 0x50]
mov ecx, dword [esp + 0x10]
mov dword [esp + 0x58], eax
mov eax, dword [ebp + 0x10]
push eax
push dword [esp + 0x18]
push 3
push 0
push dword [ebp + 8]
call fcn.004ad070
mov edx, dword [esp + 0x6c]
xor ecx, ecx
or edx, eax
add esp, 0x14
mov eax, dword [esp + 0x14]
xor esi, esi
mov dword [esp + 0x58], edx
cmp cx, word [eax + 0x2a]
jge 0x4ae1d7
mov dword [esp + 0x5c], ecx
nop
cmp edx, 0xffffffff
je 0x4ae19a
cmp esi, 0x20
jge 0x4ae103
mov eax, 1
mov ecx, esi
shl eax, cl
test edx, eax
jne 0x4ae19a
mov ecx, dword [esp + 0x5c]
mov eax, dword [esp + 0x14]
mov eax, dword [eax + 4]
test byte [eax + ecx + 0xf], 1
jne 0x4ae19a
mov eax, dword [edi + 0xc]
mov ecx, dword [edi + 0x88]
cmp dword [eax + 0x30], ecx
jg 0x4ae15c
mov eax, dword [esp + 0x8c]
mov edx, 0x3b
push 0
add eax, esi
mov ecx, edi
push eax
push 0
call fcn.0046bae0
jmp 0x4ae1b4
cmp dword [esp + 0x3c], 0
je 0x4ae09a
mov edx, dword [esp + 0x14]
mov ecx, dword [esp + 0x10]
call fcn.00497b70
jmp 0x4ae09c
lea eax, [ecx + 1]
mov dword [edi + 0x88], eax
lea ecx, [ecx + ecx*4]
mov eax, dword [edi + 0x58]
mov dword [eax + ecx*4], 0x3b
mov dword [eax + ecx*4 + 4], 0
mov dword [eax + ecx*4 + 0xc], 0
lea ecx, [eax + ecx*4]
mov eax, dword [esp + 0x8c]
add eax, esi
mov dword [ecx + 0x10], 0
mov dword [ecx + 8], eax
jmp 0x4ae1bb
mov eax, dword [esp + 0x8c]
mov ecx, edi
mov edx, dword [esp + 0x14]
add eax, esi
push eax
push esi
push dword [esp + 0x20]
call fcn.00485050
mov edx, dword [esp + 0x64]
add esp, 0xc
mov eax, dword [esp + 0x14]
inc esi
mov ecx, dword [esp + 0x5c]
add ecx, 0x10
mov dword [esp + 0x5c], ecx
movsx eax, word [eax + 0x2a]
cmp esi, eax
jl 0x4ae0e0
cmp byte [esp + 0x1f], 0
jne 0x4ae245
cmp dword [esp + 0x38], 0
jne 0x4ae245
mov eax, dword [edi + 0xc]
mov ecx, dword [edi + 0x88]
cmp dword [eax + 0x30], ecx
jg 0x4ae20f
mov edx, dword [esp + 0x48]
mov ecx, edi
push 0
push edx
push dword [esp + 0x34]
mov edx, 0x40
call fcn.0046bae0
add esp, 0xc
jmp 0x4ae245
mov edx, dword [esp + 0x2c]
lea eax, [ecx + 1]
mov dword [edi + 0x88], eax
lea ecx, [ecx + ecx*4]
mov eax, dword [edi + 0x58]
mov dword [eax + ecx*4 + 4], edx
mov edx, dword [esp + 0x48]
mov dword [eax + ecx*4], 0x40
mov dword [eax + ecx*4 + 8], edx
mov dword [eax + ecx*4 + 0xc], 0
mov dword [eax + ecx*4 + 0x10], 0
mov edx, dword [esp + 0x50]
push dword [ebp + 0x10]
mov ecx, dword [esp + 0x14]
push dword [esp + 0x18]
push 1
push 1
push dword [ebp + 8]
call fcn.004ad070
mov edx, eax
xor ecx, ecx
mov eax, dword [esp + 0x28]
xor esi, esi
add esp, 0x14
mov dword [esp + 0x30], edx
mov dword [esp + 0x80], ecx
cmp si, word [eax + 0x2a]
jge 0x4ae3ee
mov esi, dword [esp + 0x90]
nop dword [eax]
movsx eax, word [eax + 0x28]
cmp ecx, eax
jne 0x4ae2f6
mov eax, dword [edi + 0xc]
mov ecx, dword [edi + 0x88]
cmp dword [eax + 0x30], ecx
jg 0x4ae2bf
push 0
push esi
push 0
mov edx, 0x3b
mov ecx, edi
call fcn.0046bae0
add esp, 0xc
jmp 0x4ae3c6
lea eax, [ecx + 1]
mov dword [edi + 0x88], eax
lea ecx, [ecx + ecx*4]
mov eax, dword [edi + 0x58]
mov dword [eax + ecx*4], 0x3b
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 0x4ae3c6
mov eax, dword [esp + 0x20]
mov eax, dword [eax + ecx*4]
test eax, eax
js 0x4ae34f
mov ecx, dword [ebp + 8]
lea eax, [eax + eax*2]
mov edx, dword [ecx + eax*8 + 8]
test edx, edx
je 0x4ae322
cmp byte [edx], 0x9d
jne 0x4ae322
push esi
push dword [edx + 0x1c]
mov edx, 0x40
jmp 0x4ae3b7
mov ecx, dword [esp + 0x10]
push esi
call fcn.004853c0
add esp, 4
cmp eax, esi
je 0x4ae3c6
mov ecx, dword [esp + 0x10]
mov ecx, dword [ecx + 8]
test ecx, ecx
je 0x4ae3c6
push esi
push eax
mov edx, 0x41
jmp 0x4ae3be
test dword [esp + 0xac], 1
je 0x4ae394
cmp ecx, 0x1f
jg 0x4ae394
mov eax, 1
shl eax, cl
test edx, eax
jne 0x4ae394
mov eax, dword [edi + 0xc]
mov ecx, dword [edi + 0x88]
cmp dword [eax + 0x30], ecx
jg 0x4ae2bf
push 0
push esi
push 0
mov edx, 0x3b
mov ecx, edi
call fcn.0046bae0
add esp, 0xc
jmp 0x4ae3c6
mov edx, dword [esp + 0x14]
push 0
push esi
push dword [esp + 0x20]
push ecx
mov ecx, dword [esp + 0x20]
call fcn.00485110
add esp, 0x10
cmp eax, esi
je 0x4ae3c6
push esi
push eax
mov edx, 0x41
mov eax, dword [esp + 0x18]
mov ecx, dword [eax + 8]
call fcn.0046bc70
add esp, 8
mov eax, dword [esp + 0x14]
inc esi
mov ecx, dword [esp + 0x80]
mov edx, dword [esp + 0x30]
inc ecx
mov dword [esp + 0x80], ecx
movsx eax, word [eax + 0x2a]
cmp ecx, eax
mov eax, dword [esp + 0x14]
jl 0x4ae290
test byte [esp + 0xac], 1
je 0x4ae56e
push dword [esp + 0x90]
mov edx, eax
mov ecx, edi
call fcn.00498950
mov esi, dword [esp + 0x2c]
add esp, 4
mov edx, dword [esp + 0x50]
mov ecx, dword [esp + 0x10]
push esi
push dword [ebp + 0x10]
push dword [esp + 0x34]
push dword [esp + 0x20]
push 1
push dword [ebp + 8]
push 0x6e
call fcn.004acfe0
mov eax, dword [edi + 0xc]
add esp, 0x1c
cmp dword [esp + 0x38], 0
je 0x4ae512
mov edx, dword [edi + 0x88]
cmp dword [eax + 0x30], edx
jg 0x4ae46b
push dword [esp + 0x4c]
mov edx, 0x1d
mov ecx, edi
push esi
push dword [esp + 0x20]
call fcn.0046bae0
add esp, 0xc
mov edx, eax
jmp 0x4ae4a1
mov esi, dword [esp + 0x18]
lea eax, [edx + 1]
mov dword [edi + 0x88], eax
lea ecx, [edx + edx*4]
mov eax, dword [edi + 0x58]
mov dword [eax + ecx*4 + 4], esi
mov esi, dword [esp + 0x28]
mov dword [eax + ecx*4 + 8], esi
mov esi, dword [esp + 0x4c]
mov dword [eax + ecx*4], 0x1d
mov dword [eax + ecx*4 + 0xc], esi
mov dword [eax + ecx*4 + 0x10], 0
mov eax, dword [edi]
cmp byte [eax + 0x45], 0
jne 0x4ae4bf
mov eax, dword [edi + 0x58]
lea ecx, [edx + edx*4]
mov edx, dword [esp + 0x94]
mov byte [eax + ecx*4 + 1], 0xfd
mov dword [eax + ecx*4 + 0x10], edx
mov edx, dword [esp + 0x18]
mov ecx, dword [esp + 0x14]
xor eax, eax
xor esi, esi
cmp ax, word [ecx + 0x2a]
jge 0x4ae572
mov eax, dword [esp + 0x20]
cmp dword [eax + esi*4], 0
jge 0x4ae503
movsx eax, word [ecx + 0x28]
cmp esi, eax
je 0x4ae503
mov eax, dword [esp + 0x90]
add eax, esi
push eax
push esi
push edx
mov edx, ecx
mov ecx, edi
call fcn.00485050
mov ecx, dword [esp + 0x20]
add esp, 0xc
movsx eax, word [ecx + 0x2a]
inc esi
mov edx, dword [esp + 0x18]
cmp esi, eax
jl 0x4ae4d5
jmp 0x4ae572
mov ecx, dword [edi + 0x88]
cmp dword [eax + 0x30], ecx
jg 0x4ae537
push dword [esp + 0x2c]
mov edx, 0x20
mov ecx, edi
push esi
push dword [esp + 0x20]
call fcn.0046bae0
add esp, 0xc
jmp 0x4ae4bf
mov edx, dword [esp + 0x18]
lea eax, [ecx + 1]
mov dword [edi + 0x88], eax
lea ecx, [ecx + ecx*4]
mov eax, dword [edi + 0x58]
mov dword [eax + ecx*4 + 8], esi
mov esi, dword [esp + 0x2c]
mov dword [eax + ecx*4], 0x20
mov dword [eax + ecx*4 + 4], edx
mov dword [eax + ecx*4 + 0xc], esi
mov dword [eax + ecx*4 + 0x10], 0
jmp 0x4ae4c3
mov ecx, dword [esp + 0x14]
mov edx, dword [esp + 0x7c]
test edx, edx
jne 0x4ae81d
push dword [esp + 0x20]
lea eax, [esp + 0x70]
mov edx, ecx
push eax
push dword [esp + 0x30]
mov ecx, dword [esp + 0x1c]
xor esi, esi
push dword [ebp + 0x10]
push dword [esp + 0x54]
push dword [esp + 0x40]
push dword [esp + 0x60]
push dword [esp + 0xb8]
push dword [esp + 0x38]
push dword [esp + 0xbc]
call fcn.00499f00
add esp, 0x28
cmp dword [esp + 0x3c], esi
je 0x4ae5df
push dword [esp + 0x70]
mov edx, dword [esp + 0x18]
push dword [esp + 0x24]
mov ecx, dword [esp + 0x18]
push esi
push dword [esp + 0x38]
call fcn.004974f0
add esp, 0x10
cmp dword [esp + 0x6c], esi
jne 0x4ae5f0
cmp byte [esp + 0x44], 0
je 0x4ae6cf
cmp dword [esp + 0x38], esi
mov eax, dword [edi + 0xc]
mov esi, dword [edi + 0x88]
je 0x4ae677
cmp dword [eax + 0x30], esi
jg 0x4ae621
push dword [esp + 0x4c]
mov edx, 0x1d
mov ecx, edi
push 0
push dword [esp + 0x20]
call fcn.0046bae0
add esp, 0xc
mov esi, eax
jmp 0x4ae657
mov edx, dword [esp + 0x18]
lea eax, [esi + 1]
mov dword [edi + 0x88], eax
lea ecx, [esi + esi*4]
mov eax, dword [edi + 0x58]
mov dword [eax + ecx*4 + 4], edx
mov edx, dword [esp + 0x4c]
mov dword [eax + ecx*4], 0x1d
mov dword [eax + ecx*4 + 8], 0
mov dword [eax + ecx*4 + 0xc], edx
mov dword [eax + ecx*4 + 0x10], 0
mov eax, dword [edi]
cmp byte [eax + 0x45], 0
jne 0x4ae6cf
mov eax, dword [edi + 0x58]
lea ecx, [esi + esi*4]
mov edx, dword [esp + 0x94]
mov byte [eax + ecx*4 + 1], 0xfd
mov dword [eax + ecx*4 + 0x10], edx
jmp 0x4ae6cf
cmp dword [eax + 0x30], esi
jg 0x4ae699
push dword [esp + 0x2c]
mov edx, 0x20
mov ecx, edi
push 0
push dword [esp + 0x20]
call fcn.0046bae0
add esp, 0xc
mov esi, eax
jmp 0x4ae6cf
mov edx, dword [esp + 0x18]
lea eax, [esi + 1]
mov dword [edi + 0x88], eax
lea ecx, [esi + esi*4]
mov eax, dword [edi + 0x58]
mov dword [eax + ecx*4 + 4], edx
mov edx, dword [esp + 0x2c]
mov dword [eax + ecx*4], 0x20
mov dword [eax + ecx*4 + 8], 0
mov dword [eax + ecx*4 + 0xc], edx
mov dword [eax + ecx*4 + 0x10], 0
mov edx, dword [esp + 0x14]
mov ecx, dword [esp + 0x10]
push 0xffffffffffffffff
push dword [esp + 0x9c]
push dword [esp + 0xa4]
push dword [esp + 0x24]
call fcn.00492d50
add esp, 0x10
cmp dword [esp + 0x3c], 1
jg 0x4ae702
mov al, byte [esp + 0x44]
test al, al
je 0x4ae763
mov eax, dword [edi + 0xc]
mov ecx, dword [edi + 0x88]
cmp dword [eax + 0x30], ecx
jg 0x4ae729
push 0
push 0
push dword [esp + 0x20]
mov edx, 0x76
mov ecx, edi
call fcn.0046bae0
add esp, 0xc
jmp 0x4ae75f
mov edx, dword [esp + 0x18]
lea eax, [ecx + 1]
mov dword [edi + 0x88], eax
lea ecx, [ecx + ecx*4]
mov eax, dword [edi + 0x58]
mov dword [eax + ecx*4], 0x76
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
mov al, byte [esp + 0x44]
cmp dword [esp + 0x6c], 0
jne 0x4ae76e
test al, al
je 0x4ae796
mov edx, dword [edi + 0x88]
test esi, esi
jns 0x4ae77b
lea esi, [edx - 1]
mov eax, dword [edi]
cmp byte [eax + 0x45], 0
je 0x4ae78a
mov eax, 0x729e0c
jmp 0x4ae793
mov eax, dword [edi + 0x58]
lea ecx, [esi + esi*4]
lea eax, [eax + ecx*4]
mov dword [eax + 8], edx
cmp dword [esp + 0x3c], 0
mov esi, dword [esp + 0x10]
je 0x4ae7bd
push dword [esp + 0x70]
mov edx, dword [esp + 0x18]
mov ecx, esi
push dword [esp + 0x24]
push dword [esp + 0x50]
push 0
call fcn.004974f0
add esp, 0x10
mov edx, dword [esp + 0x14]
xor eax, eax
cmp dword [esp + 0x40], 2
mov ecx, esi
push 0
sete al
push 0
lea eax, [eax*2 + 4]
push eax
push dword [esp + 0xa4]
push dword [esp + 0x58]
push dword [esp + 0xb0]
push dword [esp + 0x30]
call fcn.0049b3b0
add esp, 0x1c
cmp dword [esp + 0x3c], 0
je 0x4ae821
push dword [esp + 0x70]
mov edx, dword [esp + 0x18]
mov ecx, esi
push dword [esp + 0x24]
push dword [esp + 0x34]
push dword [ebp + 8]
call fcn.00498610
add esp, 0x10
jmp 0x4ae821
mov esi, dword [esp + 0x10]
mov eax, dword [esp + 0x54]
test byte [eax + 0x18], 0x80
je 0x4ae88e
cmp dword [esi + 0x7c], 0
jne 0x4ae88e
mov eax, dword [edi + 0xc]
mov ecx, dword [edi + 0x88]
cmp dword [eax + 0x30], ecx
jg 0x4ae858
push 0
push 1
push dword [esp + 0x7c]
mov edx, 0x45
mov ecx, edi
call fcn.0046bae0
add esp, 0xc
jmp 0x4ae88e
mov edx, dword [esp + 0x74]
lea eax, [ecx + 1]
mov dword [edi + 0x88], eax
lea ecx, [ecx + ecx*4]
mov eax, dword [edi + 0x58]
mov dword [eax + ecx*4], 0x45
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
mov esi, dword [esp + 0x28]
mov edx, dword [esp + 0x50]
mov ecx, dword [esp + 0x10]
push esi
push dword [ebp + 0x10]
push dword [esp + 0x34]
push dword [esp + 0x20]
push 2
push dword [ebp + 8]
push 0x6e
call fcn.004acfe0
mov eax, dword [esp + 0x5c]
add esp, 0x1c
cmp eax, 1
je 0x4ae9c0
cmp eax, 2
mov eax, dword [edi + 0xc]
jne 0x4ae8f3
mov ecx, dword [eax + 0x48]
test ecx, ecx
je 0x4ae8e2
lea eax, [esi*4 + 4]
sub ecx, eax
mov eax, dword [edi + 0x88]
mov dword [ecx], eax
mov ecx, dword [esp + 0xa0]
call fcn.004bc470
jmp 0x4ae9c0
cmp dword [esp + 0x38], 0
je 0x4ae96d
mov ecx, dword [eax + 0x48]
test ecx, ecx
je 0x4ae912
lea eax, [esi*4 + 4]
sub ecx, eax
mov eax, dword [edi + 0x88]
mov dword [ecx], eax
mov eax, dword [edi + 0xc]
mov ecx, dword [edi + 0x88]
cmp dword [eax + 0x30], ecx
jg 0x4ae942
mov edx, dword [esp + 0xb0]
mov ecx, edi
push 0
push edx
push dword [esp + 0x6c]
mov edx, 7
call fcn.0046bae0
add esp, 0xc
jmp 0x4ae9c0
mov edx, dword [esp + 0x64]
lea eax, [ecx + 1]
mov dword [edi + 0x88], eax
lea ecx, [ecx + ecx*4]
mov eax, dword [edi + 0x58]
mov dword [eax + ecx*4 + 4], edx
mov edx, dword [esp + 0xb0]
mov dword [eax + ecx*4], 7
mov dword [eax + ecx*4 + 8], edx
jmp 0x4ae9b0
mov ecx, dword [edi + 0x88]
cmp dword [eax + 0x30], ecx
jg 0x4ae98e
push 0
push esi
push 0
mov edx, 0xd
mov ecx, edi
call fcn.0046bae0
add esp, 0xc
jmp 0x4ae9c0
lea eax, [ecx + 1]
mov dword [edi + 0x88], eax
lea ecx, [ecx + ecx*4]
mov eax, dword [edi + 0x58]
mov dword [eax + ecx*4], 0xd
mov dword [eax + ecx*4 + 4], 0
mov dword [eax + ecx*4 + 8], esi
mov dword [eax + ecx*4 + 0x10], 0
mov dword [eax + ecx*4 + 0xc], 0
mov eax, dword [edi + 0xc]
mov ecx, dword [eax + 0x48]
test ecx, ecx
je 0x4ae9df
mov eax, dword [esp + 0x34]
lea eax, [eax*4 + 4]
sub ecx, eax
mov eax, dword [edi + 0x88]
mov dword [ecx], eax
mov eax, dword [esp + 0x10]
cmp byte [eax + 0x12], 0
jne 0x4aea00
cmp dword [eax + 0x7c], 0
jne 0x4aea00
cmp dword [eax + 0x74], 0
je 0x4aea00
mov ecx, eax
call fcn.00498c70
mov eax, dword [esp + 0x10]
mov esi, dword [esp + 0x54]
test byte [esi + 0x18], 0x80
je 0x4aeaaf
cmp dword [eax + 0x7c], 0
jne 0x4aeaaf
cmp byte [eax + 0x12], 0
jne 0x4aeaaf
mov eax, dword [edi + 0xc]
mov ecx, dword [edi + 0x88]
cmp dword [eax + 0x30], ecx
jg 0x4aea49
push 0
push 1
push dword [esp + 0x7c]
mov edx, 0x43
mov ecx, edi
call fcn.0046bae0
add esp, 0xc
jmp 0x4aea7f
mov edx, dword [esp + 0x74]
lea eax, [ecx + 1]
mov dword [edi + 0x88], eax
lea ecx, [ecx + ecx*4]
mov eax, dword [edi + 0x58]
mov dword [eax + ecx*4], 0x43
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
mov edx, 1
mov ecx, edi
call fcn.0046da60
mov eax, dword [edi]
cmp byte [eax + 0x45], 0
jne 0x4aeaaf
mov ecx, dword [edi + 0x64]
mov edx, str.rows_updated
push 0
push 1
push 0xffffffffffffffff
call fcn.0046b0b0
add esp, 0xc
jmp 0x4aeaaf
mov esi, dword [esp + 0x54]
mov ecx, dword [esp + 0x24]
mov edi, dword [esp + 0x20]
test ecx, ecx
je 0x4aeac8
mov eax, dword [esp + 0xb8]
mov dword [ecx + 0x1b8], eax
test edi, edi
je 0x4aeb13
test esi, esi
je 0x4aeb0a
cmp dword [esi + 0x1c8], 0
je 0x4aeae4
mov edx, edi
mov ecx, esi
call fcn.0044e6e0
jmp 0x4aeb13
cmp edi, dword [esi + 0x120]
jb 0x4aeb0a
cmp edi, dword [esi + 0x124]
jae 0x4aeb0a
mov eax, dword [esi + 0x11c]
mov dword [edi], eax
dec dword [esi + 0x108]
mov dword [esi + 0x11c], edi
jmp 0x4aeb13
push edi
call fcn.0044e670
add esp, 4
mov edx, dword [esp + 0x60]
mov ecx, esi
call fcn.00490020
mov eax, dword [ebp + 8]
test eax, eax
je 0x4aeb2e
mov edx, eax
mov ecx, esi
call fcn.00482370
mov eax, dword [ebp + 0xc]
test eax, eax
je 0x4aeb3e
mov edx, eax
mov ecx, esi
call fcn.004813b0
pop edi
pop esi
mov esp, ebp
pop ebp
ret