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

Disassembly:
sub esp, 0x88
push ebx
xor ebx, ebx
push ebp
push esi
mov esi, dword [esp + 0x98]
or eax, 0xffffffff
cmp dword [esi + 0x18], ebx
push edi
mov dword [esp + 0x2c], ebx
mov dword [esp + 0x68], ebx
mov dword [esp + 0x3c], ebx
mov dword [esp + 0x54], ebx
mov dword [esp + 0x44], ebx
mov dword [esp + 0x60], ebx
mov dword [esp + 0x40], eax
mov dword [esp + 0x50], eax
mov dword [esp + 0x70], ebx
jne 0x454d6a
cmp dword [0x4c47e8], ebx
je 0x452ce5
cmp dword [0x4c47f0], ebx
jle 0x452ce5
call dword [sym.imp.KERNEL32.dll_GetCurrentThreadId]
cmp dword [0x4c47cc], eax
je 0x454d6a
mov ecx, dword [esp + 0xa0]
mov eax, dword [esi]
push ecx
push esi
mov dword [esp + 0x64], eax
call fcn.004417a0
mov ebp, eax
add esp, 8
cmp ebp, ebx
mov dword [esp + 0x18], ebp
je 0x454d6a
mov edi, dword [ebp + 0x4c]
cmp edi, ebx
mov eax, dword [esi]
mov dword [esp + 0x30], 0xfff0bdc0
je 0x452d42
mov ecx, dword [eax]
xor edx, edx
cmp ecx, ebx
mov dword [esp + 0x30], edx
jle 0x452d42
mov eax, dword [eax + 4]
add eax, 0x14
lea ecx, [ecx]
cmp dword [eax], edi
je 0x452d3e
add edx, 1
add eax, 0x18
cmp edx, ecx
jl 0x452d30
mov dword [esp + 0x30], edx
mov ebx, dword [esp + 0xa4]
push 0x64
mov eax, ebp
call fcn.004526f0
xor edx, edx
add esp, 4
cmp dword [ebp + 0x18], edx
mov edi, eax
setne dl
push edi
mov eax, ebp
mov ecx, esi
mov dword [esp + 0x5c], edi
mov dword [esp + 0x50], edx
call fcn.00441800
add esp, 4
test eax, eax
jne 0x454d6a
push ebp
push esi
call fcn.0043e570
add esp, 8
test eax, eax
jne 0x454d6a
mov eax, dword [ebp + 4]
add eax, eax
add eax, eax
xor ebx, ebx
cmp eax, ebx
jle 0x454d6a
push eax
call fcn.0041ca60
add esp, 4
cmp eax, ebx
mov dword [esp + 0x34], eax
je 0x454d6a
xor ecx, ecx
cmp dword [ebp + 4], ebx
jle 0x452dcf
jmp 0x452dc0
mov dword [eax + ecx*4], 0xffffffff
add ecx, 1
cmp ecx, dword [ebp + 4]
jl 0x452dc0
cmp edi, ebx
je 0x452de7
mov ecx, dword [esi + 0x1c]
mov dword [esp + 0x40], ecx
add ecx, 1
mov dword [esp + 0x50], ecx
add ecx, 1
mov dword [esi + 0x1c], ecx
mov ecx, dword [esi + 0x1c]
mov edi, dword [esp + 0xa0]
mov dword [edi + 0x20], ecx
add dword [esi + 0x1c], 1
mov edx, dword [esi + 0x1c]
mov dword [esp + 0x28], ecx
mov ecx, dword [ebp + 0x10]
cmp ecx, ebx
je 0x452e13
add edx, 1
mov dword [esi + 0x1c], edx
mov ecx, dword [ecx + 0x20]
cmp ecx, ebx
jne 0x452e06
xor ecx, ecx
mov dword [esp + 0x74], ecx
mov dword [esp + 0x78], ecx
mov dword [esp + 0x7c], ecx
mov dword [esp + 0x80], ecx
mov dword [esp + 0x84], ecx
mov dword [esp + 0x88], ecx
mov dword [esp + 0x8c], ecx
mov dword [esp + 0x90], ecx
mov dword [esp + 0x94], ecx
mov ecx, dword [esp + 0xa4]
cmp dword [ecx], ebx
mov dword [esp + 0x74], esi
mov dword [esp + 0x78], edi
mov dword [esp + 0x38], ebx
mov dword [esp + 0x24], ebx
jle 0x453097
xor esi, esi
mov dword [esp + 0x14], esi
mov edx, dword [esp + 0xa4]
mov eax, dword [edx + 0xc]
mov ebx, dword [eax + esi]
lea edi, [esp + 0x74]
call fcn.004371d0
test eax, eax
jne 0x454d5d
mov ebp, dword [esp + 0x18]
xor edi, edi
cmp edi, dword [ebp + 4]
mov dword [esp + 0x1c], edi
jge 0x452f49
mov ecx, dword [esp + 0xa4]
mov edx, dword [ecx + 0xc]
lea eax, [edx + esi]
mov esi, dword [ebp + 8]
mov dword [esp + 0x48], eax
mov eax, dword [eax + 4]
mov dword [esp + 0x20], eax
mov ecx, dword [esi]
mov al, byte [ecx]
test al, al
mov edx, dword [esp + 0x20]
je 0x452ef1
jmp 0x452ed0
movzx ebx, byte [edx]
movzx eax, al
mov al, byte [eax + 0x4a9dc0]
cmp al, byte [ebx + 0x4a9dc0]
jne 0x452ef1
mov al, byte [ecx + 1]
add ecx, 1
add edx, 1
test al, al
jne 0x452ed0
movzx ecx, byte [ecx]
movzx eax, byte [ecx + 0x4a9dc0]
movzx ecx, byte [edx]
movzx edx, byte [ecx + 0x4a9dc0]
sub eax, edx
je 0x452f1a
add edi, 1
add esi, 0x14
cmp edi, dword [ebp + 4]
jl 0x452ebc
mov dword [esp + 0x1c], edi
jmp 0x452f40
cmp edi, dword [ebp + 0xc]
mov dword [esp + 0x1c], edi
jne 0x452f35
mov eax, dword [esp + 0x48]
mov ecx, dword [eax]
mov dword [esp + 0x38], 1
mov dword [esp + 0x54], ecx
mov edx, dword [esp + 0x34]
mov eax, dword [esp + 0x24]
mov dword [edx + edi*4], eax
cmp edi, dword [ebp + 4]
jl 0x453024
mov ecx, dword [esp + 0xa4]
mov eax, dword [esp + 0x14]
mov edx, dword [ecx + 0xc]
mov edi, dword [edx + eax + 4]
mov bl, byte [edi]
test bl, bl
lea ebp, [edx + eax]
mov eax, edi
mov esi, str._ROWID_
je 0x452f91
mov dl, bl
lea ecx, [ecx]
movzx ecx, dl
movzx edx, byte [esi]
mov cl, byte [ecx + 0x4a9dc0]
cmp cl, byte [edx + 0x4a9dc0]
jne 0x452f91
mov dl, byte [eax + 1]
add eax, 1
add esi, 1
test dl, dl
jne 0x452f70
movzx edx, byte [esi]
movzx ecx, byte [edx + 0x4a9dc0]
movzx edx, byte [eax]
movzx eax, byte [edx + 0x4a9dc0]
sub eax, ecx
je 0x45300d
test bl, bl
mov edx, edi
mov esi, str.ROWID
je 0x452fe1
mov al, bl
jmp 0x452fc0
movzx ecx, al
movzx eax, byte [esi]
mov cl, byte [ecx + 0x4a9dc0]
cmp cl, byte [eax + 0x4a9dc0]
jne 0x452fe1
mov al, byte [edx + 1]
add edx, 1
add esi, 1
test al, al
jne 0x452fc0
movzx eax, byte [esi]
movzx edx, byte [edx]
movzx ecx, byte [eax + 0x4a9dc0]
movzx eax, byte [edx + 0x4a9dc0]
sub eax, ecx
je 0x45300d
mov edx, 0x4ad3d4
mov ecx, edi
call fcn.0041ea90
test eax, eax
jne 0x4531cb
mov ecx, dword [ebp]
mov ebp, dword [esp + 0x18]
mov edi, dword [esp + 0x1c]
mov dword [esp + 0x38], 1
mov dword [esp + 0x54], ecx
mov eax, dword [esp + 0x30]
lea edx, [eax + eax*2]
mov eax, dword [esp + 0x5c]
mov ecx, dword [eax + 4]
mov edx, dword [ecx + edx*8]
mov ecx, dword [ebp + 8]
push edx
lea eax, [edi + edi*4]
mov edx, dword [ecx + eax*4]
mov eax, dword [ebp]
push edx
push eax
mov eax, dword [esp + 0xa8]
push 0x17
call fcn.0043c0c0
add esp, 0x10
cmp eax, 1
je 0x454d5d
cmp eax, 2
mov eax, dword [esp + 0x34]
jne 0x45306e
mov dword [eax + edi*4], 0xffffffff
mov ecx, dword [esp + 0x24]
mov esi, dword [esp + 0x14]
mov edx, dword [esp + 0xa4]
add ecx, 1
add esi, 0xc
cmp ecx, dword [edx]
mov dword [esp + 0x24], ecx
mov dword [esp + 0x14], esi
jl 0x452e70
mov ebp, dword [esp + 0x18]
mov esi, dword [ebp + 0x10]
xor ecx, ecx
cmp esi, ecx
mov dword [esp + 0x24], ecx
mov dword [esp + 0x1c], ecx
je 0x453178
lea esp, [esp]
xor ecx, ecx
cmp dword [esp + 0x38], ecx
jne 0x4530d4
mov edi, dword [esi + 4]
test edi, edi
jle 0x4530d4
mov edx, dword [esi + 8]
mov ebx, dword [edx]
cmp dword [eax + ebx*4], 0
jge 0x4530d4
add ecx, 1
add edx, 4
cmp ecx, edi
jl 0x4530c2
cmp ecx, dword [esi + 4]
jge 0x4530de
add dword [esp + 0x1c], 1
mov edi, dword [esp + 0x24]
mov esi, dword [esi + 0x20]
add edi, 1
test esi, esi
mov dword [esp + 0x24], edi
jne 0x4530b0
test edi, edi
jle 0x453178
mov ebx, dword [esp + 0x1c]
lea edi, [edi + ebx*4]
test edi, edi
jle 0x45315d
cmp dword [0x4c47e8], esi
je 0x453121
cmp dword [0x4c47f0], esi
jle 0x453121
call dword [sym.imp.KERNEL32.dll_GetCurrentThreadId]
cmp dword [0x4c47cc], eax
je 0x45315d
push edi
call fcn.00486093
mov esi, eax
add esp, 4
test esi, esi
jne 0x45315d
cmp dword [0x4c47e8], eax
je 0x45314e
cmp dword [0x4c47f0], eax
jle 0x45314e
call dword [sym.imp.KERNEL32.dll_GetCurrentThreadId]
cmp dword [0x4c47cc], eax
je 0x45315d
call fcn.00420d80
mov dword [0x4c47e8], 1
test esi, esi
mov dword [esp + 0x68], esi
je 0x454d5d
mov eax, dword [esp + 0x34]
mov ebp, dword [esp + 0x18]
lea ecx, [esi + ebx*4]
mov dword [esp + 0x3c], ecx
mov esi, dword [ebp + 0x10]
test esi, esi
je 0x453207
mov edx, dword [esp + 0x68]
mov ebx, dword [esp + 0x3c]
mov dword [esp + 0x1c], edx
nop
xor ecx, ecx
cmp dword [esp + 0x38], ecx
jne 0x4531b4
mov edi, dword [esi + 4]
test edi, edi
jle 0x4531b4
mov edx, dword [esi + 8]
mov ebp, dword [edx]
cmp dword [eax + ebp*4], 0
jge 0x4531b4
add ecx, 1
add edx, 4
cmp ecx, edi
jl 0x4531a2
cmp ecx, dword [esi + 4]
jge 0x4531fa
mov ecx, dword [esp + 0x1c]
mov dword [ecx], esi
add ecx, 4
mov dword [esp + 0x1c], ecx
mov byte [ebx], 1
jmp 0x4531fd
mov ecx, dword [esp + 0xa4]
mov eax, dword [esp + 0x24]
mov edx, dword [ecx + 0xc]
mov esi, dword [esp + 0x9c]
lea eax, [eax + eax*2]
mov eax, dword [edx + eax*4 + 4]
push eax
push str.no_such_column:__s
call fcn.0041e940
add esp, 8
jmp 0x454d5d
mov byte [ebx], 0
mov esi, dword [esi + 0x20]
add ebx, 1
test esi, esi
jne 0x453190
mov esi, dword [esp + 0x9c]
mov ebp, dword [esi + 0xc]
test ebp, ebp
jne 0x4532c5
cmp dword [0x4c47e8], 0
mov ebp, dword [esi]
je 0x45323b
cmp dword [0x4c47f0], 0
jle 0x45323b
call dword [sym.imp.KERNEL32.dll_GetCurrentThreadId]
cmp dword [0x4c47cc], eax
je 0x453291
push 0x250
call fcn.00486093
mov edi, eax
add esp, 4
test edi, edi
jne 0x45327d
cmp dword [0x4c47e8], eax
je 0x45326c
cmp dword [0x4c47f0], eax
jle 0x45326c
call dword [sym.imp.KERNEL32.dll_GetCurrentThreadId]
cmp dword [0x4c47cc], eax
je 0x45328d
call fcn.00420d80
mov dword [0x4c47e8], 1
jmp 0x45328d
push 0x250
push 0
push edi
call fcn.00487460
add esp, 0xc
test edi, edi
jne 0x453295
xor edi, edi
jmp 0x4532b8
mov dword [edi], ebp
mov eax, dword [ebp + 0x50]
test eax, eax
je 0x4532a1
mov dword [eax + 4], edi
mov eax, dword [ebp + 0x50]
mov dword [edi + 8], eax
mov dword [edi + 4], 0
mov dword [ebp + 0x50], edi
mov dword [edi + 0x4c], 0x26bceaa5
test edi, edi
mov dword [esi + 0xc], edi
mov ebp, edi
je 0x454d4c
cmp byte [esi + 0x13], 0
jne 0x4532d2
mov byte [ebp + 0x232], 1
mov ecx, dword [esp + 0x30]
push ecx
push 1
mov eax, esi
call fcn.004407a0
mov eax, dword [esp + 0x20]
add esp, 8
cmp byte [eax + 0x39], 0
je 0x45332e
mov edx, dword [esp + 0xa8]
mov ecx, dword [esp + 0x34]
push edx
mov edx, dword [esp + 0x58]
push ecx
mov ecx, dword [esp + 0xac]
push edx
mov edx, dword [esp + 0xac]
push ecx
push eax
push edx
push esi
call fcn.00454db0
add esp, 0x1c
xor eax, eax
mov dword [esp + 0xa8], eax
mov dword [esp + 0xa0], eax
jmp 0x454d4c
mov ebx, dword [esp + 0xa8]
lea edi, [esp + 0x74]
call fcn.004371d0
test eax, eax
jne 0x454d4c
cmp dword [esp + 0x4c], eax
je 0x4533a3
mov eax, dword [esi + 0xb0]
mov dword [esp + 0x6c], eax
mov eax, dword [esp + 0x18]
mov ecx, dword [eax]
mov dword [esi + 0xb0], ecx
mov edx, dword [eax + 0x18]
push edx
mov dword [esp + 0x74], esi
call fcn.00436060
add esp, 4
push 0
push 0
push 0
mov edi, eax
mov eax, dword [esp + 0x34]
push 0
push eax
push 8
push edi
push esi
call fcn.00450720
add esp, 0x20
test edi, edi
je 0x4533a3
push edi
call fcn.0044b8a0
add esp, 4
push edi
call fcn.00485420
add esp, 4
mov ecx, dword [esp + 0xa0]
push 0
push ebx
push ecx
push esi
call fcn.00459690
mov edi, eax
add esp, 0x10
test edi, edi
je 0x454d37
mov edx, dword [esp + 0x18]
mov cl, byte [edx + 0x39]
mov esi, dword [ebp + 0xc]
neg cl
sbb ecx, ecx
and ecx, 0xffffffe7
add ecx, 0x25
cmp dword [ebp + 0x10], esi
mov dword [esp + 0x20], ecx
jg 0x45340c
lea eax, [esi + 1]
mov ebx, ebp
call fcn.0042d000
cmp dword [0x4c47e8], 0
je 0x453408
cmp dword [0x4c47f0], 0
jle 0x453408
call dword [sym.imp.KERNEL32.dll_GetCurrentThreadId]
cmp dword [0x4c47cc], eax
je 0x453433
mov ecx, dword [esp + 0x20]
mov edx, dword [ebp + 0x14]
add dword [ebp + 0xc], 1
lea eax, [esi + esi*4]
lea eax, [edx + eax*4]
mov byte [eax], cl
mov ecx, dword [esp + 0x28]
mov dword [eax + 4], ecx
xor ecx, ecx
mov dword [eax + 8], ecx
mov dword [eax + 0xc], ecx
mov dword [eax + 0x10], ecx
mov byte [ebp + 0x234], cl
mov esi, dword [ebp + 0xc]
cmp dword [ebp + 0x10], esi
jg 0x453465
lea eax, [esi + 1]
mov ebx, ebp
call fcn.0042d000
cmp dword [0x4c47e8], 0
je 0x453465
cmp dword [0x4c47f0], 0
jle 0x453465
call dword [sym.imp.KERNEL32.dll_GetCurrentThreadId]
cmp dword [0x4c47cc], eax
je 0x453489
mov eax, dword [ebp + 0x14]
xor ecx, ecx
add dword [ebp + 0xc], 1
lea edx, [esi + esi*4]
lea eax, [eax + edx*4]
mov byte [eax], 0x39
mov dword [eax + 4], ecx
mov dword [eax + 8], ecx
mov dword [eax + 0xc], ecx
mov dword [eax + 0x10], ecx
mov byte [ebp + 0x234], cl
push edi
call fcn.0045bcf0
mov ecx, dword [esp + 0x60]
add esp, 4
test byte [ecx + 8], 0x80
je 0x4534ca
mov edx, dword [esp + 0x9c]
cmp dword [edx + 0xac], 0
jne 0x4534ca
mov ecx, edx
mov eax, dword [ecx + 0x20]
push eax
lea edx, [eax + 1]
push 0
push 0x30
mov esi, ebp
mov dword [esp + 0x6c], eax
mov dword [ecx + 0x20], edx
call fcn.0042d070
add esp, 0xc
cmp dword [esp + 0x58], 0
je 0x4539a4
mov ebx, dword [esp + 0x50]
push 0
push ebx
push 0x78
mov esi, ebp
call fcn.0042d070
mov edi, dword [esp + 0x24]
mov eax, dword [edi + 4]
add esp, 0xc
push eax
push ebx
push 0x68
call fcn.0042d070
mov ebx, dword [esp + 0x4c]
add esp, 0xc
push 0
push ebx
push 0x78
call fcn.0042d070
mov ecx, dword [edi + 4]
add esp, 0xc
push ecx
push ebx
push 0x68
call fcn.0042d070
mov esi, dword [ebp + 0xc]
add esp, 0xc
cmp dword [ebp + 0x10], esi
jg 0x453557
lea eax, [esi + 1]
mov ebx, ebp
call fcn.0042d000
cmp dword [0x4c47e8], 0
je 0x453557
cmp dword [0x4c47f0], 0
jle 0x453557
call dword [sym.imp.KERNEL32.dll_GetCurrentThreadId]
cmp dword [0x4c47cc], eax
jne 0x453557
mov dword [esp + 0x2c], 0
jmp 0x45357f
mov eax, dword [ebp + 0x14]
add dword [ebp + 0xc], 1
xor ecx, ecx
lea edx, [esi + esi*4]
lea eax, [eax + edx*4]
mov byte [eax], 0x61
mov dword [eax + 4], ecx
mov dword [eax + 8], ecx
mov dword [eax + 0xc], ecx
mov dword [eax + 0x10], ecx
mov byte [ebp + 0x234], cl
mov dword [esp + 0x2c], esi
cmp dword [esp + 0x4c], 0
jne 0x453625
push 0
push 0
push 0x5e
mov esi, ebp
call fcn.0042d070
add esp, 0xc
push 0
push 0
push 0x5e
call fcn.0042d070
add esp, 0xc
cmp byte [edi + 0x39], 0
jne 0x453625
mov ecx, dword [esp + 0x9c]
mov edi, dword [ecx + 0xc]
test edi, edi
jne 0x4535ca
mov esi, ecx
mov edi, dword [esi]
call fcn.0042cf20
mov dword [esi + 0xc], eax
mov edi, eax
mov eax, dword [esp + 0x18]
mov edx, dword [eax]
mov eax, dword [eax + 0x14]
mov ebx, dword [esp + 0x30]
mov esi, dword [esp + 0x9c]
push edx
push 0
push eax
call fcn.0043c170
add esp, 0xc
push 0
push ebx
push 0x2f
mov esi, edi
call fcn.0042d070
mov ecx, dword [esp + 0x24]
mov edx, dword [ecx + 0x14]
mov ebx, dword [esp + 0x34]
add esp, 0xc
push edx
push ebx
push 0xe
call fcn.0042d070
mov eax, dword [esp + 0x24]
mov ecx, dword [eax + 4]
add esp, 0xc
push ecx
push ebx
push 0x68
call fcn.0042d070
add esp, 0xc
jmp 0x453629
mov ebx, dword [esp + 0x28]
push 0
push ebx
push 0x80
mov esi, ebp
call fcn.0042d070
add esp, 0xc
push 0
push ebx
push 0x25
call fcn.0042d070
add esp, 0xc
push 0
push ebx
push 0x29
call fcn.0042d070
mov edx, dword [esp + 0x5c]
add esp, 0xc
push 0
push edx
push 0x71
call fcn.0042d070
add esp, 0xc
cmp dword [esp + 0x38], 0
je 0x453683
mov eax, dword [esp + 0x54]
mov ebx, dword [esp + 0x9c]
push eax
call fcn.004380d0
add esp, 4
jmp 0x453692
push 0
push ebx
push 0x25
mov esi, ebp
call fcn.0042d070
add esp, 0xc
mov ecx, dword [esp + 0x18]
xor edi, edi
cmp dword [ecx + 4], edi
mov dword [esp + 0x24], edi
jle 0x4537c1
mov ebx, dword [esp + 0x18]
cmp edi, dword [ebx + 0xc]
jne 0x45370d
mov esi, dword [ebp + 0xc]
cmp dword [ebp + 0x10], esi
jg 0x4536e4
lea eax, [esi + 1]
mov ebx, ebp
call fcn.0042d000
cmp dword [0x4c47e8], 0
je 0x4536e4
cmp dword [0x4c47f0], 0
jle 0x4536e4
call dword [sym.imp.KERNEL32.dll_GetCurrentThreadId]
cmp dword [0x4c47cc], eax
je 0x4537ad
mov eax, dword [ebp + 0x14]
add dword [ebp + 0xc], 1
xor ecx, ecx
lea edx, [esi + esi*4]
lea eax, [eax + edx*4]
mov byte [eax], 0x7a
mov dword [eax + 4], ecx
mov dword [eax + 8], ecx
mov dword [eax + 0xc], ecx
mov dword [eax + 0x10], ecx
mov byte [ebp + 0x234], cl
jmp 0x4537ad
mov ecx, dword [esp + 0x34]
mov eax, dword [ecx + edi*4]
test eax, eax
jge 0x453737
mov edx, dword [esp + 0x28]
push edi
push edx
push 3
mov esi, ebp
call fcn.0042d070
add esp, 0xc
mov ecx, edi
mov eax, ebx
mov edx, ebp
call fcn.00452bd0
jmp 0x4537ad
mov ecx, dword [esp + 0xa4]
mov edx, dword [ecx + 0xc]
lea eax, [eax + eax*2]
mov ebx, dword [edx + eax*4]
mov eax, dword [esp + 0x9c]
mov esi, dword [eax + 0xc]
test esi, esi
je 0x4537ad
mov edi, dword [esi + 0xc]
mov ecx, eax
push ebx
push ecx
call fcn.00437720
mov eax, dword [esi + 0xc]
lea edx, [edi + 1]
add esp, 8
cmp eax, edx
jg 0x453788
test edi, edi
jl 0x453781
cmp edi, eax
jge 0x453781
mov ecx, dword [esi + 0x14]
lea eax, [edi + edi*4]
lea eax, [ecx + eax*4]
jmp 0x453783
xor eax, eax
cmp byte [eax], 0x14
jne 0x4537a9
mov ecx, dword [esp + 0x9c]
mov eax, dword [ecx + 0x20]
push 0
push eax
mov dword [ebx + 0x24], eax
add dword [ecx + 0x20], 1
push 0x7c
call fcn.0042d070
add esp, 0xc
mov byte [ebx], 0x7f
mov edi, dword [esp + 0x24]
mov edx, dword [esp + 0x18]
add edi, 1
cmp edi, dword [edx + 4]
mov dword [esp + 0x24], edi
jl 0x4536a5
mov eax, dword [esp + 0x18]
mov esi, dword [ebp + 0xc]
mov ebx, dword [ebp + 0x10]
cmp ebx, esi
mov ecx, dword [eax + 4]
mov dword [esp + 0x20], ecx
mov dword [esp + 0x1c], esi
jg 0x45385f
xor eax, eax
cmp dword [ebp + 0x4c], 0xbdf20da3
lea edi, [esi + 1]
sete al
test eax, eax
jne 0x4537f5
cmp ebx, edi
jge 0x45383f
xor edx, edx
test eax, eax
mov eax, dword [ebp + 0x14]
sete dl
imul edx, edx, 0x64
add edx, edi
mov esi, edx
lea edi, [esi + esi*4]
add edi, edi
add edi, edi
call fcn.0041cad0
test eax, eax
je 0x45383b
cmp esi, ebx
mov dword [ebp + 0x10], esi
mov dword [ebp + 0x14], eax
jle 0x45383b
sub esi, ebx
lea ecx, [esi + esi*4]
add ecx, ecx
add ecx, ecx
push ecx
lea edx, [ebx + ebx*4]
lea eax, [eax + edx*4]
push 0
push eax
call fcn.00487460
add esp, 0xc
mov esi, dword [esp + 0x1c]
xor edi, edi
cmp dword [0x4c47e8], edi
je 0x45385f
cmp dword [0x4c47f0], edi
jle 0x45385f
call dword [sym.imp.KERNEL32.dll_GetCurrentThreadId]
cmp dword [0x4c47cc], eax
je 0x453888
mov edx, dword [ebp + 0x14]
add dword [ebp + 0xc], 1
lea ecx, [esi + esi*4]
lea eax, [edx + ecx*4]
mov ecx, dword [esp + 0x20]
xor edi, edi
mov byte [eax], 0x5b
mov dword [eax + 4], ecx
mov dword [eax + 8], edi
mov dword [eax + 0xc], edi
mov dword [eax + 0x10], edi
mov byte [ebp + 0x234], 0
cmp dword [esp + 0x4c], edi
jne 0x453899
mov eax, dword [esp + 0x18]
mov ecx, ebp
call fcn.00444660
mov edx, dword [esp + 0x9c]
cmp dword [edx + 0x18], edi
jne 0x454d37
mov esi, dword [ebp + 0xc]
cmp dword [ebp + 0x10], esi
jg 0x4538db
lea eax, [esi + 1]
mov ebx, ebp
call fcn.0042d000
cmp dword [0x4c47e8], 0
je 0x4538db
cmp dword [0x4c47f0], 0
jle 0x4538db
call dword [sym.imp.KERNEL32.dll_GetCurrentThreadId]
cmp dword [0x4c47cc], eax
je 0x453903
mov ecx, dword [ebp + 0x14]
add dword [ebp + 0xc], 1
mov edx, dword [esp + 0x40]
lea eax, [esi + esi*4]
lea eax, [ecx + eax*4]
xor ecx, ecx
mov byte [eax], 0x71
mov dword [eax + 4], edx
mov dword [eax + 8], ecx
mov dword [eax + 0xc], ecx
mov dword [eax + 0x10], ecx
mov byte [ebp + 0x234], cl
cmp dword [esp + 0x4c], 0
jne 0x453964
mov esi, dword [ebp + 0xc]
cmp dword [ebp + 0x10], esi
jg 0x45393c
lea eax, [esi + 1]
mov ebx, ebp
call fcn.0042d000
cmp dword [0x4c47e8], 0
je 0x45393c
cmp dword [0x4c47f0], 0
jle 0x45393c
call dword [sym.imp.KERNEL32.dll_GetCurrentThreadId]
cmp dword [0x4c47cc], eax
je 0x453964
mov edx, dword [ebp + 0x14]
xor ecx, ecx
add dword [ebp + 0xc], 1
lea eax, [esi + esi*4]
lea eax, [edx + eax*4]
mov edx, dword [esp + 0x28]
mov byte [eax], 0x1e
mov dword [eax + 4], edx
mov dword [eax + 8], ecx
mov dword [eax + 0xc], ecx
mov dword [eax + 0x10], ecx
mov byte [ebp + 0x234], cl
mov eax, dword [esp + 0x2c]
mov ecx, dword [esp + 0xac]
mov edx, dword [esp + 0x50]
push eax
mov eax, dword [esp + 0x44]
push ecx
mov ecx, dword [esp + 0x20]
push edx
mov edx, dword [esp + 0xb0]
push eax
mov eax, dword [esp + 0xac]
push ecx
push 1
push edx
push 0x64
push eax
call fcn.004529b0
add esp, 0x24
test eax, eax
jne 0x454d37
cmp dword [esp + 0x4c], 0
jne 0x4549c8
mov ecx, dword [esp + 0x18]
cmp byte [ecx + 0x39], 0
jne 0x4549c8
mov esi, dword [esp + 0x9c]
mov edi, dword [esi + 0xc]
test edi, edi
jne 0x4539d7
mov edi, dword [esi]
call fcn.0042cf20
mov dword [esi + 0xc], eax
mov edi, eax
mov eax, dword [esp + 0x18]
mov edx, dword [eax]
mov eax, dword [eax + 0x14]
mov ebx, dword [esp + 0x30]
push edx
push 1
push eax
call fcn.0043c170
add esp, 0xc
push 0
mov ecx, ebx
push ecx
push 0x2f
mov esi, edi
call fcn.0042d070
mov edx, dword [esp + 0x24]
mov eax, dword [edx + 0x14]
mov ebx, dword [esp + 0x34]
add esp, 0xc
push eax
push ebx
push 9
call fcn.0042d070
mov ecx, dword [esp + 0x24]
mov edx, dword [ecx + 4]
add esp, 0xc
push edx
push ebx
push 0x68
call fcn.0042d070
mov ecx, 5
add esp, 0xc
xor edx, edx
cmp dword [esp + 0xac], ecx
je 0x453a5e
mov eax, dword [esp + 0x18]
mov eax, dword [eax + 0x10]
cmp eax, edx
mov dword [esp + 0x44], edx
je 0x453a66
lea ebx, [ebx]
cmp byte [eax + 0x18], cl
je 0x453a5e
mov eax, dword [eax + 0x20]
cmp eax, edx
jne 0x453a50
jmp 0x453a66
mov dword [esp + 0x44], 1
mov ecx, dword [esp + 0x18]
mov eax, dword [ecx + 0x10]
cmp eax, edx
mov dword [esp + 0x24], edx
mov dword [esp + 0x1c], eax
je 0x453e0c
lea ecx, [ecx]
cmp dword [esp + 0x44], 0
jne 0x453a99
mov edx, dword [esp + 0x24]
mov eax, dword [esp + 0x3c]
cmp byte [edx + eax], 0
je 0x453df2
mov ecx, dword [esp + 0x1c]
mov edx, dword [esp + 0x9c]
push ecx
push edx
call fcn.00440ad0
mov ecx, dword [ebp + 0xc]
mov edx, dword [ebp + 0x10]
add esp, 8
cmp edx, ecx
mov dword [esp + 0x20], eax
mov dword [esp + 0x48], ecx
mov dword [esp + 0x14], edx
jg 0x453bda
xor eax, eax
add ecx, 1
cmp dword [ebp + 0x4c], 0xbdf20da3
sete al
test eax, eax
jne 0x453ae3
cmp edx, ecx
jge 0x453bba
xor edx, edx
test eax, eax
sete dl
mov ebx, dword [ebp + 0x14]
imul edx, edx, 0x64
add edx, ecx
mov edi, edx
lea esi, [edi + edi*4]
add esi, esi
add esi, esi
cmp dword [0x4c47e8], 0
je 0x453b1f
cmp dword [0x4c47f0], 0
jle 0x453b1f
call dword [sym.imp.KERNEL32.dll_GetCurrentThreadId]
cmp dword [0x4c47cc], eax
je 0x453bba
test ebx, ebx
jne 0x453b4c
test esi, esi
jle 0x453b46
push esi
call fcn.0041ca60
mov ebx, eax
add esp, 4
test ebx, ebx
je 0x453b42
push esi
push 0
push ebx
call fcn.00487460
add esp, 0xc
mov eax, ebx
jmp 0x453b8b
xor ebx, ebx
mov eax, ebx
jmp 0x453b8b
push esi
push ebx
call fcn.004854ae
mov esi, eax
add esp, 8
test esi, esi
jne 0x453b89
cmp dword [0x4c47e8], eax
je 0x453b7a
cmp dword [0x4c47f0], eax
jle 0x453b7a
call dword [sym.imp.KERNEL32.dll_GetCurrentThreadId]
cmp dword [0x4c47cc], eax
je 0x453b89
call fcn.00420d80
mov dword [0x4c47e8], 1
mov eax, esi
test eax, eax
je 0x453bba
cmp edi, dword [esp + 0x14]
mov dword [ebp + 0x10], edi
mov dword [ebp + 0x14], eax
jle 0x453bba
mov ecx, dword [esp + 0x14]
sub edi, ecx
lea edx, [edi + edi*4]
add edx, edx
add edx, edx
push edx
lea ecx, [ecx + ecx*4]
lea edx, [eax + ecx*4]
push 0
push edx
call fcn.00487460
add esp, 0xc
cmp dword [0x4c47e8], 0
je 0x453bda
cmp dword [0x4c47f0], 0
jle 0x453bda
call dword [sym.imp.KERNEL32.dll_GetCurrentThreadId]
cmp dword [0x4c47cc], eax
je 0x453c06
mov ecx, dword [ebp + 0x14]
add dword [ebp + 0xc], 1
mov eax, dword [esp + 0x48]
mov edx, dword [esp + 0x30]
lea eax, [eax + eax*4]
lea eax, [ecx + eax*4]
xor ecx, ecx
mov byte [eax], 0x2f
mov dword [eax + 4], edx
mov dword [eax + 8], ecx
mov dword [eax + 0xc], ecx
mov dword [eax + 0x10], ecx
mov byte [ebp + 0x234], cl
mov eax, dword [esp + 0x1c]
mov ecx, dword [eax + 0x14]
mov eax, dword [ebp + 0xc]
mov dword [esp + 0x64], ecx
mov ecx, dword [ebp + 0x10]
cmp ecx, eax
mov dword [esp + 0x48], eax
mov dword [esp + 0x14], ecx
jg 0x453d43
mov ecx, eax
xor eax, eax
add ecx, 1
cmp dword [ebp + 0x4c], 0xbdf20da3
sete al
test eax, eax
jne 0x453c46
cmp dword [esp + 0x14], ecx
jge 0x453d1d
xor edx, edx
test eax, eax
sete dl
mov ebx, dword [ebp + 0x14]
imul edx, edx, 0x64
add edx, ecx
mov edi, edx
lea esi, [edi + edi*4]
add esi, esi
add esi, esi
cmp dword [0x4c47e8], 0
je 0x453c82
cmp dword [0x4c47f0], 0
jle 0x453c82
call dword [sym.imp.KERNEL32.dll_GetCurrentThreadId]
cmp dword [0x4c47cc], eax
je 0x453d1d
test ebx, ebx
jne 0x453caf
test esi, esi
jle 0x453ca9
push esi
call fcn.0041ca60
mov ebx, eax
add esp, 4
test ebx, ebx
je 0x453ca5
push esi
push 0
push ebx
call fcn.00487460
add esp, 0xc
mov eax, ebx
jmp 0x453cee
xor ebx, ebx
mov eax, ebx
jmp 0x453cee
push esi
push ebx
call fcn.004854ae
mov esi, eax
add esp, 8
test esi, esi
jne 0x453cec
cmp dword [0x4c47e8], eax
je 0x453cdd
cmp dword [0x4c47f0], eax
jle 0x453cdd
call dword [sym.imp.KERNEL32.dll_GetCurrentThreadId]
cmp dword [0x4c47cc], eax
je 0x453cec
call fcn.00420d80
mov dword [0x4c47e8], 1
mov eax, esi
test eax, eax
je 0x453d1d
cmp edi, dword [esp + 0x14]
mov dword [ebp + 0x10], edi
mov dword [ebp + 0x14], eax
jle 0x453d1d
mov ecx, dword [esp + 0x14]
sub edi, ecx
lea edx, [edi + edi*4]
add edx, edx
add edx, edx
push edx
lea ecx, [ecx + ecx*4]
lea edx, [eax + ecx*4]
push 0
push edx
call fcn.00487460
add esp, 0xc
cmp dword [0x4c47e8], 0
je 0x453d43
cmp dword [0x4c47f0], 0
jle 0x453d43
call dword [sym.imp.KERNEL32.dll_GetCurrentThreadId]
cmp dword [0x4c47cc], eax
jne 0x453d43
xor edi, edi
xor esi, esi
jmp 0x453d7c
mov ecx, dword [ebp + 0x14]
mov esi, dword [esp + 0x48]
add dword [ebp + 0xc], 1
mov edx, dword [esp + 0x28]
lea eax, [esi + esi*4]
lea eax, [ecx + eax*4]
mov ecx, dword [esp + 0x24]
lea edx, [edx + ecx + 1]
mov ecx, dword [esp + 0x64]
xor edi, edi
mov byte [eax], 9
mov dword [eax + 4], edx
mov dword [eax + 8], ecx
mov dword [eax + 0xc], edi
mov dword [eax + 0x10], edi
mov byte [ebp + 0x234], 0
cmp dword [ebp + 0x14], edi
je 0x453de4
cmp dword [0x4c47e8], edi
je 0x453d9f
cmp dword [0x4c47f0], edi
jle 0x453d9f
call dword [sym.imp.KERNEL32.dll_GetCurrentThreadId]
cmp dword [0x4c47cc], eax
je 0x453de4
cmp esi, edi
jl 0x453da8
cmp esi, dword [ebp + 0xc]
jl 0x453db0
mov esi, dword [ebp + 0xc]
sub esi, 1
js 0x453df2
mov eax, dword [ebp + 0x14]
lea edx, [esi + esi*4]
mov ecx, dword [eax + edx*4 + 0xc]
lea esi, [eax + edx*4]
mov eax, dword [esi + 0x10]
call fcn.0042d3d0
mov eax, dword [esp + 0x20]
cmp eax, edi
mov dword [esi + 0xc], edi
jne 0x453dd8
mov dword [esi + 0xc], edi
mov dword [esi + 0x10], edi
jmp 0x453df2
mov dword [esi + 0xc], eax
mov dword [esi + 0x10], 0xfffffffa
jmp 0x453df2
mov ecx, dword [esp + 0x20]
mov eax, 0xfffffff7
call fcn.0042d3d0
mov ecx, dword [esp + 0x1c]
mov eax, dword [ecx + 0x20]
add dword [esp + 0x24], 1
test eax, eax
mov dword [esp + 0x1c], eax
jne 0x453a80
xor edx, edx
cmp dword [esp + 0x58], edx
jne 0x4540c4
mov ecx, dword [ebp + 0xc]
mov esi, dword [ebp + 0x10]
cmp esi, ecx
mov dword [esp + 0x1c], ecx
mov dword [esp + 0x14], esi
jg 0x453f4d
xor eax, eax
add ecx, 1
cmp dword [ebp + 0x4c], 0xbdf20da3
sete al
cmp eax, edx
jne 0x453e47
cmp esi, ecx
jge 0x453f1d
xor ebx, ebx
cmp eax, edx
sete bl
imul ebx, ebx, 0x64
add ebx, ecx
mov edi, ebx
mov ebx, dword [ebp + 0x14]
lea esi, [edi + edi*4]
add esi, esi
add esi, esi
cmp dword [0x4c47e8], edx
je 0x453e82
cmp dword [0x4c47f0], 0
jle 0x453e82
call dword [sym.imp.KERNEL32.dll_GetCurrentThreadId]
cmp dword [0x4c47cc], eax
je 0x453f1d
test ebx, ebx
jne 0x453eaf
test esi, esi
jle 0x453ea9
push esi
call fcn.0041ca60
mov ebx, eax
add esp, 4
test ebx, ebx
je 0x453ea5
push esi
push 0
push ebx
call fcn.00487460
add esp, 0xc
mov eax, ebx
jmp 0x453eee
xor ebx, ebx
mov eax, ebx
jmp 0x453eee
push esi
push ebx
call fcn.004854ae
mov esi, eax
add esp, 8
test esi, esi
jne 0x453eec
cmp dword [0x4c47e8], eax
je 0x453edd
cmp dword [0x4c47f0], eax
jle 0x453edd
call dword [sym.imp.KERNEL32.dll_GetCurrentThreadId]
cmp dword [0x4c47cc], eax
je 0x453eec
call fcn.00420d80
mov dword [0x4c47e8], 1
mov eax, esi
test eax, eax
je 0x453f1d
cmp edi, dword [esp + 0x14]
mov dword [ebp + 0x10], edi
mov dword [ebp + 0x14], eax
jle 0x453f1d
mov ecx, dword [esp + 0x14]
sub edi, ecx
lea edx, [edi + edi*4]
add edx, edx
add edx, edx
push edx
lea ecx, [ecx + ecx*4]
lea edx, [eax + ecx*4]
push 0
push edx
call fcn.00487460
add esp, 0xc
xor edx, edx
cmp dword [0x4c47e8], edx
je 0x453f49
cmp dword [0x4c47f0], edx
jle 0x453f49
call dword [sym.imp.KERNEL32.dll_GetCurrentThreadId]
cmp dword [0x4c47cc], eax
jne 0x453f47
mov dword [esp + 0x2c], 0
jmp 0x453f74
xor edx, edx
mov ecx, dword [esp + 0x1c]
mov esi, dword [ebp + 0x14]
add dword [ebp + 0xc], 1
lea eax, [ecx + ecx*4]
lea eax, [esi + eax*4]
mov byte [eax], 0x61
mov dword [eax + 4], edx
mov dword [eax + 8], edx
mov dword [eax + 0xc], edx
mov dword [eax + 0x10], edx
mov byte [ebp + 0x234], 0
mov dword [esp + 0x2c], ecx
mov ecx, dword [ebp + 0xc]
mov edx, dword [ebp + 0x10]
cmp edx, ecx
mov dword [esp + 0x1c], ecx
mov dword [esp + 0x14], edx
jg 0x4540a0
xor eax, eax
add ecx, 1
cmp dword [ebp + 0x4c], 0xbdf20da3
sete al
test eax, eax
jne 0x453fa5
cmp edx, ecx
jge 0x45407c
xor edx, edx
test eax, eax
sete dl
mov ebx, dword [ebp + 0x14]
imul edx, edx, 0x64
add edx, ecx
mov edi, edx
lea esi, [edi + edi*4]
add esi, esi
add esi, esi
cmp dword [0x4c47e8], 0
je 0x453fe1
cmp dword [0x4c47f0], 0
jle 0x453fe1
call dword [sym.imp.KERNEL32.dll_GetCurrentThreadId]
cmp dword [0x4c47cc], eax
je 0x45407c
test ebx, ebx
jne 0x45400e
test esi, esi
jle 0x454008
push esi
call fcn.0041ca60
mov ebx, eax
add esp, 4
test ebx, ebx
je 0x454004
push esi
push 0
push ebx
call fcn.00487460
add esp, 0xc
mov eax, ebx
jmp 0x45404d
xor ebx, ebx
mov eax, ebx
jmp 0x45404d
push esi
push ebx
call fcn.004854ae
mov esi, eax
add esp, 8
test esi, esi
jne 0x45404b
cmp dword [0x4c47e8], eax
je 0x45403c
cmp dword [0x4c47f0], eax
jle 0x45403c
call dword [sym.imp.KERNEL32.dll_GetCurrentThreadId]
cmp dword [0x4c47cc], eax
je 0x45404b
call fcn.00420d80
mov dword [0x4c47e8], 1
mov eax, esi
test eax, eax
je 0x45407c
cmp edi, dword [esp + 0x14]
mov dword [ebp + 0x10], edi
mov dword [ebp + 0x14], eax
jle 0x45407c
mov ecx, dword [esp + 0x14]
sub edi, ecx
lea edx, [edi + edi*4]
add edx, edx
add edx, edx
push edx
lea ecx, [ecx + ecx*4]
lea edx, [eax + ecx*4]
push 0
push edx
call fcn.00487460
add esp, 0xc
cmp dword [0x4c47e8], 0
je 0x45409c
cmp dword [0x4c47f0], 0
jle 0x45409c
call dword [sym.imp.KERNEL32.dll_GetCurrentThreadId]
cmp dword [0x4c47cc], eax
je 0x4540c4
mov ecx, dword [esp + 0x1c]
add dword [ebp + 0xc], 1
lea eax, [ecx + ecx*4]
mov ecx, dword [ebp + 0x14]
lea eax, [ecx + eax*4]
xor ecx, ecx
mov byte [eax], 0x5e
mov dword [eax + 4], ecx
mov dword [eax + 8], ecx
mov dword [eax + 0xc], ecx
mov dword [eax + 0x10], ecx
mov byte [ebp + 0x234], cl
mov eax, dword [ebp + 0xc]
mov ecx, dword [ebp + 0x10]
cmp ecx, eax
mov dword [esp + 0x20], eax
mov dword [esp + 0x14], ecx
jg 0x454239
mov ecx, eax
xor eax, eax
add ecx, 1
cmp dword [ebp + 0x4c], 0xbdf20da3
sete al
test eax, eax
jne 0x4540f9
cmp dword [esp + 0x14], ecx
jge 0x454219
xor edx, edx
test eax, eax
sete dl
mov ebx, dword [ebp + 0x14]
imul edx, edx, 0x64
add edx, ecx
mov edi, edx
lea esi, [edi + edi*4]
add esi, esi
add esi, esi
cmp dword [0x4c47e8], 0
je 0x454135
cmp dword [0x4c47f0], 0
jle 0x454135
call dword [sym.imp.KERNEL32.dll_GetCurrentThreadId]
cmp dword [0x4c47cc], eax
je 0x454219
test ebx, ebx
jne 0x4541ab
test esi, esi
jle 0x4541a7
cmp dword [0x4c47e8], ebx
je 0x45415b
cmp dword [0x4c47f0], ebx
jle 0x45415b
call dword [sym.imp.KERNEL32.dll_GetCurrentThreadId]
cmp dword [0x4c47cc], eax
je 0x4541a7
push esi
call fcn.00486093
mov ebx, eax
add esp, 4
test ebx, ebx
jne 0x45419b
cmp dword [0x4c47e8], eax
je 0x454188
cmp dword [0x4c47f0], eax
jle 0x454188
call dword [sym.imp.KERNEL32.dll_GetCurrentThreadId]
cmp dword [0x4c47cc], eax
je 0x4541a7
call fcn.00420d80
mov dword [0x4c47e8], 1
mov eax, ebx
jmp 0x4541ea
push esi
push 0
push ebx
call fcn.00487460
add esp, 0xc
mov eax, ebx
jmp 0x4541ea
push esi
push ebx
call fcn.004854ae
mov esi, eax
add esp, 8
test esi, esi
jne 0x4541e8
cmp dword [0x4c47e8], eax
je 0x4541d9
cmp dword [0x4c47f0], eax
jle 0x4541d9
call dword [sym.imp.KERNEL32.dll_GetCurrentThreadId]
cmp dword [0x4c47cc], eax
je 0x4541e8
call fcn.00420d80
mov dword [0x4c47e8], 1
mov eax, esi
test eax, eax
je 0x454219
cmp edi, dword [esp + 0x14]
mov dword [ebp + 0x10], edi
mov dword [ebp + 0x14], eax
jle 0x454219
mov ecx, dword [esp + 0x14]
sub edi, ecx
lea edx, [edi + edi*4]
add edx, edx
add edx, edx
push edx
lea ecx, [ecx + ecx*4]
lea edx, [eax + ecx*4]
push 0
push edx
call fcn.00487460
add esp, 0xc
cmp dword [0x4c47e8], 0
je 0x454239
cmp dword [0x4c47f0], 0
jle 0x454239
call dword [sym.imp.KERNEL32.dll_GetCurrentThreadId]
cmp dword [0x4c47cc], eax
je 0x454270
mov ecx, dword [ebp + 0x14]
mov eax, dword [esp + 0x20]
add dword [ebp + 0xc], 1
mov edx, dword [esp + 0x28]
lea eax, [eax + eax*4]
lea eax, [ecx + eax*4]
mov ecx, dword [esp + 0x2c]
mov byte [eax], 0x2c
mov dword [eax + 4], edx
mov dword [eax + 8], ecx
mov dword [eax + 0xc], 0
mov dword [eax + 0x10], 0
mov byte [ebp + 0x234], 0
cmp dword [esp + 0x38], 0
je 0x4543e7
mov edx, dword [esp + 0x54]
mov eax, dword [esp + 0x9c]
push edx
push eax
call fcn.00437720
mov ecx, dword [ebp + 0xc]
mov edx, dword [ebp + 0x10]
add esp, 8
cmp edx, ecx
mov dword [esp + 0x20], ecx
mov dword [esp + 0x14], edx
jg 0x4543bc
xor eax, eax
add ecx, 1
cmp dword [ebp + 0x4c], 0xbdf20da3
sete al
test eax, eax
jne 0x4542c1
cmp edx, ecx
jge 0x454398
xor edx, edx
test eax, eax
sete dl
mov ebx, dword [ebp + 0x14]
imul edx, edx, 0x64
add edx, ecx
mov edi, edx
lea esi, [edi + edi*4]
add esi, esi
add esi, esi
cmp dword [0x4c47e8], 0
je 0x4542fd
cmp dword [0x4c47f0], 0
jle 0x4542fd
call dword [sym.imp.KERNEL32.dll_GetCurrentThreadId]
cmp dword [0x4c47cc], eax
je 0x454398
test ebx, ebx
jne 0x45432a
test esi, esi
jle 0x454324
push esi
call fcn.0041ca60
mov ebx, eax
add esp, 4
test ebx, ebx
je 0x454320
push esi
push 0
push ebx
call fcn.00487460
add esp, 0xc
mov eax, ebx
jmp 0x454369
xor ebx, ebx
mov eax, ebx
jmp 0x454369
push esi
push ebx
call fcn.004854ae
mov esi, eax
add esp, 8
test esi, esi
jne 0x454367
cmp dword [0x4c47e8], eax
je 0x454358
cmp dword [0x4c47f0], eax
jle 0x454358
call dword [sym.imp.KERNEL32.dll_GetCurrentThreadId]
cmp dword [0x4c47cc], eax
je 0x454367
call fcn.00420d80
mov dword [0x4c47e8], 1
mov eax, esi
test eax, eax
je 0x454398
cmp edi, dword [esp + 0x14]
mov dword [ebp + 0x10], edi
mov dword [ebp + 0x14], eax
jle 0x454398
mov ecx, dword [esp + 0x14]
sub edi, ecx
lea edx, [edi + edi*4]
add edx, edx
add edx, edx
push edx
lea ecx, [ecx + ecx*4]
lea edx, [eax + ecx*4]
push 0
push edx
call fcn.00487460
add esp, 0xc
xor edx, edx
cmp dword [0x4c47e8], edx
je 0x4543c0
cmp dword [0x4c47f0], edx
jle 0x4543c0
call dword [sym.imp.KERNEL32.dll_GetCurrentThreadId]
cmp dword [0x4c47cc], eax
je 0x4543e7
mov ecx, dword [esp + 0x20]
xor edx, edx
jmp 0x4543c4
mov ecx, dword [esp + 0x20]
add dword [ebp + 0xc], 1
lea eax, [ecx + ecx*4]
mov ecx, dword [ebp + 0x14]
lea eax, [ecx + eax*4]
mov byte [eax], 0x23
mov dword [eax + 4], edx
mov dword [eax + 8], edx
mov dword [eax + 0xc], edx
mov dword [eax + 0x10], edx
mov byte [ebp + 0x234], 0
mov edx, dword [esp + 0x18]
cmp dword [edx + 4], 0
mov dword [esp + 0x24], 0
jle 0x4547b5
lea ecx, [ecx]
mov eax, dword [esp + 0x24]
mov ecx, dword [esp + 0x18]
cmp eax, dword [ecx + 0xc]
jne 0x4545b7
mov eax, dword [ebp + 0xc]
mov ecx, dword [ebp + 0x10]
cmp ecx, eax
mov dword [esp + 0x20], eax
mov dword [esp + 0x14], ecx
jg 0x45458a
mov ecx, eax
xor eax, eax
add ecx, 1
cmp dword [ebp + 0x4c], 0xbdf20da3
sete al
test eax, eax
jne 0x454446
cmp dword [esp + 0x14], ecx
jge 0x454566
xor edx, edx
test eax, eax
sete dl
mov ebx, dword [ebp + 0x14]
imul edx, edx, 0x64
add edx, ecx
mov edi, edx
lea esi, [edi + edi*4]
add esi, esi
add esi, esi
cmp dword [0x4c47e8], 0
je 0x454482
cmp dword [0x4c47f0], 0
jle 0x454482
call dword [sym.imp.KERNEL32.dll_GetCurrentThreadId]
cmp dword [0x4c47cc], eax
je 0x454566
test ebx, ebx
jne 0x4544f8
test esi, esi
jle 0x4544f4
cmp dword [0x4c47e8], ebx
je 0x4544a8
cmp dword [0x4c47f0], ebx
jle 0x4544a8
call dword [sym.imp.KERNEL32.dll_GetCurrentThreadId]
cmp dword [0x4c47cc], eax
je 0x4544f4
push esi
call fcn.00486093
mov ebx, eax
add esp, 4
test ebx, ebx
jne 0x4544e8
cmp dword [0x4c47e8], eax
je 0x4544d5
cmp dword [0x4c47f0], eax
jle 0x4544d5
call dword [sym.imp.KERNEL32.dll_GetCurrentThreadId]
cmp dword [0x4c47cc], eax
je 0x4544f4
call fcn.00420d80
mov dword [0x4c47e8], 1
mov eax, ebx
jmp 0x454537
push esi
push 0
push ebx
call fcn.00487460
add esp, 0xc
mov eax, ebx
jmp 0x454537
push esi
push ebx
call fcn.004854ae
mov esi, eax
add esp, 8
test esi, esi
jne 0x454535
cmp dword [0x4c47e8], eax
je 0x454526
cmp dword [0x4c47f0], eax
jle 0x454526
call dword [sym.imp.KERNEL32.dll_GetCurrentThreadId]
cmp dword [0x4c47cc], eax
je 0x454535
call fcn.00420d80
mov dword [0x4c47e8], 1
mov eax, esi
test eax, eax
je 0x454566
cmp edi, dword [esp + 0x14]
mov dword [ebp + 0x10], edi
mov dword [ebp + 0x14], eax
jle 0x454566
mov ecx, dword [esp + 0x14]
sub edi, ecx
lea edx, [edi + edi*4]
add edx, edx
add edx, edx
push edx
lea ecx, [ecx + ecx*4]
lea edx, [eax + ecx*4]
push 0
push edx
call fcn.00487460
add esp, 0xc
cmp dword [0x4c47e8], 0
je 0x45458a
cmp dword [0x4c47f0], 0
jle 0x45458a
call dword [sym.imp.KERNEL32.dll_GetCurrentThreadId]
cmp dword [0x4c47cc], eax
je 0x45479d
mov ecx, dword [ebp + 0x14]
add dword [ebp + 0xc], 1
mov eax, dword [esp + 0x20]
lea eax, [eax + eax*4]
lea eax, [ecx + eax*4]
xor ecx, ecx
mov byte [eax], 0x7a
mov dword [eax + 4], ecx
mov dword [eax + 8], ecx
mov dword [eax + 0xc], ecx
mov dword [eax + 0x10], ecx
mov byte [ebp + 0x234], cl
jmp 0x45479d
mov edx, dword [esp + 0x34]
mov eax, dword [edx + eax*4]
test eax, eax
jge 0x45477c
mov eax, dword [ebp + 0xc]
mov ecx, dword [ebp + 0x10]
cmp ecx, eax
mov dword [esp + 0x20], eax
mov dword [esp + 0x14], ecx
jg 0x45473b
mov ecx, eax
xor eax, eax
add ecx, 1
cmp dword [ebp + 0x4c], 0xbdf20da3
sete al
test eax, eax
jne 0x4545fb
cmp dword [esp + 0x14], ecx
jge 0x45471b
xor edx, edx
test eax, eax
sete dl
mov ebx, dword [ebp + 0x14]
imul edx, edx, 0x64
add edx, ecx
mov edi, edx
lea esi, [edi + edi*4]
add esi, esi
add esi, esi
cmp dword [0x4c47e8], 0
je 0x454637
cmp dword [0x4c47f0], 0
jle 0x454637
call dword [sym.imp.KERNEL32.dll_GetCurrentThreadId]
cmp dword [0x4c47cc], eax
je 0x45471b
test ebx, ebx
jne 0x4546ad
test esi, esi
jle 0x4546a9
cmp dword [0x4c47e8], ebx
je 0x45465d
cmp dword [0x4c47f0], ebx
jle 0x45465d
call dword [sym.imp.KERNEL32.dll_GetCurrentThreadId]
cmp dword [0x4c47cc], eax
je 0x4546a9
push esi
call fcn.00486093
mov ebx, eax
add esp, 4
test ebx, ebx
jne 0x45469d
cmp dword [0x4c47e8], eax
je 0x45468a
cmp dword [0x4c47f0], eax
jle 0x45468a
call dword [sym.imp.KERNEL32.dll_GetCurrentThreadId]
cmp dword [0x4c47cc], eax
je 0x4546a9
call fcn.00420d80
mov dword [0x4c47e8], 1
mov eax, ebx
jmp 0x4546ec
push esi
push 0
push ebx
call fcn.00487460
add esp, 0xc
mov eax, ebx
jmp 0x4546ec
push esi
push ebx
call fcn.004854ae
mov esi, eax
add esp, 8
test esi, esi
jne 0x4546ea
cmp dword [0x4c47e8], eax
je 0x4546db
cmp dword [0x4c47f0], eax
jle 0x4546db
call dword [sym.imp.KERNEL32.dll_GetCurrentThreadId]
cmp dword [0x4c47cc], eax
je 0x4546ea
call fcn.00420d80
mov dword [0x4c47e8], 1
mov eax, esi
test eax, eax
je 0x45471b
cmp edi, dword [esp + 0x14]
mov dword [ebp + 0x10], edi
mov dword [ebp + 0x14], eax
jle 0x45471b
mov ecx, dword [esp + 0x14]
sub edi, ecx
lea edx, [edi + edi*4]
add edx, edx
add edx, edx
push edx
lea ecx, [ecx + ecx*4]
lea edx, [eax + ecx*4]
push 0
push edx
call fcn.00487460
add esp, 0xc
cmp dword [0x4c47e8], 0
je 0x45473b
cmp dword [0x4c47f0], 0
jle 0x45473b
call dword [sym.imp.KERNEL32.dll_GetCurrentThreadId]
cmp dword [0x4c47cc], eax
je 0x45476b
mov ecx, dword [ebp + 0x14]
mov eax, dword [esp + 0x20]
add dword [ebp + 0xc], 1
mov edx, dword [esp + 0x28]
lea eax, [eax + eax*4]
lea eax, [ecx + eax*4]
mov ecx, dword [esp + 0x24]
mov dword [eax + 8], ecx
xor ecx, ecx
mov byte [eax], 3
mov dword [eax + 4], edx
mov dword [eax + 0xc], ecx
mov dword [eax + 0x10], ecx
mov byte [ebp + 0x234], cl
mov ecx, dword [esp + 0x24]
mov eax, dword [esp + 0x18]
mov edx, ebp
call fcn.00452bd0
jmp 0x45479d
lea edx, [eax + eax*2]
mov eax, dword [esp + 0xa4]
mov ecx, dword [eax + 0xc]
mov edx, dword [ecx + edx*4]
mov eax, dword [esp + 0x9c]
push edx
push eax
call fcn.00437720
add esp, 8
mov eax, dword [esp + 0x24]
mov ecx, dword [esp + 0x18]
add eax, 1
cmp eax, dword [ecx + 4]
mov dword [esp + 0x24], eax
jl 0x454400
mov edx, dword [esp + 0x2c]
mov eax, dword [esp + 0xac]
mov ebx, dword [esp + 0x38]
mov esi, dword [esp + 0x3c]
mov edi, dword [esp + 0x28]
mov ecx, dword [esp + 0x18]
push edx
push eax
push 1
push ebx
push esi
push edi
push ecx
mov ecx, dword [esp + 0xb8]
call fcn.00445a00
mov eax, dword [esp + 0x34]
add esp, 0x1c
push esi
push edi
mov esi, ebp
call fcn.004420b0
xor esi, esi
add esp, 8
cmp ebx, esi
je 0x4549a3
mov ecx, dword [ebp + 0xc]
mov edx, dword [ebp + 0x10]
cmp edx, ecx
mov dword [esp + 0x64], ecx
mov dword [esp + 0x14], edx
jg 0x45497a
xor eax, eax
add ecx, 1
cmp dword [ebp + 0x4c], 0xbdf20da3
sete al
cmp eax, esi
jne 0x454832
cmp edx, ecx
jge 0x454952
xor edx, edx
test eax, eax
sete dl
mov ebx, dword [ebp + 0x14]
imul edx, edx, 0x64
add edx, ecx
mov edi, edx
lea esi, [edi + edi*4]
add esi, esi
add esi, esi
cmp dword [0x4c47e8], 0
je 0x45486e
cmp dword [0x4c47f0], 0
jle 0x45486e
call dword [sym.imp.KERNEL32.dll_GetCurrentThreadId]
cmp dword [0x4c47cc], eax
je 0x454952
test ebx, ebx
jne 0x4548e4
test esi, esi
jle 0x4548e0
cmp dword [0x4c47e8], ebx
je 0x454894
cmp dword [0x4c47f0], ebx
jle 0x454894
call dword [sym.imp.KERNEL32.dll_GetCurrentThreadId]
cmp dword [0x4c47cc], eax
je 0x4548e0
push esi
call fcn.00486093
mov ebx, eax
add esp, 4
test ebx, ebx
jne 0x4548d4
cmp dword [0x4c47e8], eax
je 0x4548c1
cmp dword [0x4c47f0], eax
jle 0x4548c1
call dword [sym.imp.KERNEL32.dll_GetCurrentThreadId]
cmp dword [0x4c47cc], eax
je 0x4548e0
call fcn.00420d80
mov dword [0x4c47e8], 1
mov eax, ebx
jmp 0x454923
push esi
push 0
push ebx
call fcn.00487460
add esp, 0xc
mov eax, ebx
jmp 0x454923
push esi
push ebx
call fcn.004854ae
mov esi, eax
add esp, 8
test esi, esi
jne 0x454921
cmp dword [0x4c47e8], eax
je 0x454912
cmp dword [0x4c47f0], eax
jle 0x454912
call dword [sym.imp.KERNEL32.dll_GetCurrentThreadId]
cmp dword [0x4c47cc], eax
je 0x454921
call fcn.00420d80
mov dword [0x4c47e8], 1
mov eax, esi
test eax, eax
je 0x454952
cmp edi, dword [esp + 0x14]
mov dword [ebp + 0x10], edi
mov dword [ebp + 0x14], eax
jle 0x454952
mov ecx, dword [esp + 0x14]
sub edi, ecx
lea edx, [edi + edi*4]
add edx, edx
add edx, edx
push edx
lea ecx, [ecx + ecx*4]
lea edx, [eax + ecx*4]
push 0
push edx
call fcn.00487460
add esp, 0xc
xor esi, esi
cmp dword [0x4c47e8], esi
je 0x454972
cmp dword [0x4c47f0], esi
jle 0x454972
call dword [sym.imp.KERNEL32.dll_GetCurrentThreadId]
cmp dword [0x4c47cc], eax
je 0x45499f
mov ecx, dword [esp + 0x64]
mov edi, dword [esp + 0x28]
add dword [ebp + 0xc], 1
lea eax, [ecx + ecx*4]
mov ecx, dword [ebp + 0x14]
lea eax, [ecx + eax*4]
mov byte [eax], 0x5c
mov dword [eax + 4], edi
mov dword [eax + 8], esi
mov dword [eax + 0xc], esi
mov dword [eax + 0x10], esi
mov byte [ebp + 0x234], 0
jmp 0x4549a3
mov edi, dword [esp + 0x28]
mov edx, dword [esp + 0x38]
mov eax, dword [esp + 0x3c]
mov ecx, dword [esp + 0x18]
push esi
push 0xffffffffffffffff
push 1
push edx
mov edx, dword [esp + 0xac]
push eax
push edi
push ecx
push edx
call fcn.00447360
add esp, 0x20
mov eax, dword [esp + 0x5c]
test byte [eax + 8], 0x80
je 0x454b92
mov ecx, dword [esp + 0x9c]
cmp dword [ecx + 0xac], 0
jne 0x454b92
mov eax, dword [ebp + 0xc]
mov ecx, dword [ebp + 0x10]
cmp ecx, eax
mov dword [esp + 0x20], eax
mov dword [esp + 0x14], ecx
jg 0x454b5b
mov ecx, eax
xor eax, eax
add ecx, 1
cmp dword [ebp + 0x4c], 0xbdf20da3
sete al
test eax, eax
jne 0x454a1f
cmp dword [esp + 0x14], ecx
jge 0x454b3b
xor ebx, ebx
mov edi, dword [ebp + 0x14]
test eax, eax
sete bl
imul ebx, ebx, 0x64
add ebx, ecx
lea esi, [ebx + ebx*4]
add esi, esi
add esi, esi
cmp dword [0x4c47e8], 0
je 0x454a59
cmp dword [0x4c47f0], 0
jle 0x454a59
call dword [sym.imp.KERNEL32.dll_GetCurrentThreadId]
cmp dword [0x4c47cc], eax
je 0x454b3b
test edi, edi
jne 0x454acf
test esi, esi
jle 0x454acb
cmp dword [0x4c47e8], edi
je 0x454a7f
cmp dword [0x4c47f0], edi
jle 0x454a7f
call dword [sym.imp.KERNEL32.dll_GetCurrentThreadId]
cmp dword [0x4c47cc], eax
je 0x454acb
push esi
call fcn.00486093
mov edi, eax
add esp, 4
test edi, edi
jne 0x454abf
cmp dword [0x4c47e8], eax
je 0x454aac
cmp dword [0x4c47f0], eax
jle 0x454aac
call dword [sym.imp.KERNEL32.dll_GetCurrentThreadId]
cmp dword [0x4c47cc], eax
je 0x454acb
call fcn.00420d80
mov dword [0x4c47e8], 1
mov eax, edi
jmp 0x454b0e
push esi
push 0
push edi
call fcn.00487460
add esp, 0xc
mov eax, edi
jmp 0x454b0e
push esi
push edi
call fcn.004854ae
mov esi, eax
add esp, 8
test esi, esi
jne 0x454b0c
cmp dword [0x4c47e8], eax
je 0x454afd
cmp dword [0x4c47f0], eax
jle 0x454afd
call dword [sym.imp.KERNEL32.dll_GetCurrentThreadId]
cmp dword [0x4c47cc], eax
je 0x454b0c
call fcn.00420d80
mov dword [0x4c47e8], 1
mov eax, esi
test eax, eax
je 0x454b3b
mov ecx, dword [esp + 0x14]
cmp ebx, ecx
mov dword [ebp + 0x10], ebx
mov dword [ebp + 0x14], eax
jle 0x454b3b
sub ebx, ecx
lea edx, [ebx + ebx*4]
add edx, edx
add edx, edx
push edx
lea ecx, [ecx + ecx*4]
lea edx, [eax + ecx*4]
push 0
push edx
call fcn.00487460
add esp, 0xc
cmp dword [0x4c47e8], 0
je 0x454b5b
cmp dword [0x4c47f0], 0
jle 0x454b5b
call dword [sym.imp.KERNEL32.dll_GetCurrentThreadId]
cmp dword [0x4c47cc], eax
je 0x454b92
mov edx, dword [ebp + 0x14]
mov eax, dword [esp + 0x20]
mov ecx, 1
add dword [ebp + 0xc], ecx
lea eax, [eax + eax*4]
lea eax, [edx + eax*4]
mov dword [eax + 4], ecx
mov ecx, dword [esp + 0x60]
mov byte [eax], 0x2d
mov dword [eax + 8], ecx
mov dword [eax + 0xc], 0
mov dword [eax + 0x10], 0
mov byte [ebp + 0x234], 0
cmp dword [esp + 0x58], 0
je 0x454c36
cmp dword [esp + 0x4c], 0
jne 0x454bf6
mov edx, dword [esp + 0x18]
mov ebx, dword [edx + 0x10]
xor edi, edi
test ebx, ebx
je 0x454be3
cmp dword [esp + 0x44], 0
jne 0x454bc2
mov eax, dword [esp + 0x3c]
cmp byte [edi + eax], 0
je 0x454bd9
mov ecx, dword [esp + 0x28]
push 0
lea edx, [ecx + edi + 1]
push edx
push 0x1e
mov esi, ebp
call fcn.0042d070
add esp, 0xc
mov ebx, dword [ebx + 0x20]
add edi, 1
test ebx, ebx
jne 0x454bb1
mov eax, dword [esp + 0x28]
push 0
push eax
push 0x1e
mov esi, ebp
call fcn.0042d070
add esp, 0xc
mov ecx, dword [esp + 0x2c]
mov edx, dword [esp + 0xac]
mov eax, dword [esp + 0x50]
push ecx
mov ecx, dword [esp + 0x44]
push edx
mov edx, dword [esp + 0x20]
push eax
mov eax, dword [esp + 0xb0]
push ecx
mov ecx, dword [esp + 0xac]
push edx
push 2
push eax
push 0x64
push ecx
call fcn.004529b0
add esp, 0x24
test eax, eax
jne 0x454d37
mov edi, dword [esp + 0x2c]
push edi
push 0
push 0x5f
mov esi, ebp
call fcn.0042d070
add esp, 0xc
test edi, edi
jl 0x454c62
mov ecx, dword [ebp + 0xc]
cmp ecx, edi
jle 0x454c62
mov eax, dword [ebp + 0x14]
test eax, eax
je 0x454c62
lea edx, [edi + edi*4]
mov dword [eax + edx*4 + 8], ecx
cmp dword [esp + 0x58], 0
jne 0x454cb1
mov eax, dword [esp + 0x18]
mov ebx, dword [eax + 0x10]
xor edi, edi
test ebx, ebx
je 0x454ca8
cmp dword [esp + 0x44], 0
jne 0x454c87
mov ecx, dword [esp + 0x3c]
cmp byte [edi + ecx], 0
je 0x454c9e
mov edx, dword [esp + 0x28]
push 0
lea eax, [edx + edi + 1]
push eax
push 0x1e
mov esi, ebp
call fcn.0042d070
add esp, 0xc
mov ebx, dword [ebx + 0x20]
add edi, 1
test ebx, ebx
jne 0x454c76
mov ecx, dword [esp + 0x28]
push 0
push ecx
jmp 0x454ccb
mov edx, dword [esp + 0x40]
push 0
push edx
push 0x1e
mov esi, ebp
call fcn.0042d070
mov eax, dword [esp + 0x5c]
add esp, 0xc
push 0
push eax
push 0x1e
mov esi, ebp
call fcn.0042d070
mov ecx, dword [esp + 0x68]
add esp, 0xc
test byte [ecx + 8], 0x80
je 0x454d37
mov eax, dword [esp + 0x9c]
cmp dword [eax + 0xac], 0
jne 0x454d37
cmp byte [eax + 0x13], 0
jne 0x454d37
mov edx, dword [esp + 0x60]
push 0
push edx
push 1
call fcn.0042d070
add esp, 0xc
push 0
push 1
push 0x3a
call fcn.0042d070
add esp, 0xc
mov eax, 1
mov ebx, ebp
call fcn.0042ddd0
push 0xfffffffffffffffe
push 0
push 0
mov edi, str.rows_updated
mov eax, ebp
call fcn.0042de50
add esp, 0xc
cmp dword [esp + 0x70], 0
je 0x454d4c
mov eax, dword [esp + 0x6c]
mov ecx, dword [esp + 0x70]
mov dword [ecx + 0xb0], eax
mov eax, dword [esp + 0x68]
test eax, eax
je 0x454d5d
push eax
call fcn.00485420
add esp, 4
mov edx, dword [esp + 0x34]
push edx
call fcn.00485420
add esp, 4
mov eax, dword [esp + 0xa0]
push eax
call fcn.004401d0
mov ebx, dword [esp + 0xa8]
add esp, 4
call fcn.00436370
mov ecx, dword [esp + 0xa8]
push ecx
call fcn.00435a00
add esp, 4
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x88
ret