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

Disassembly:
sub esp, 0x88
or eax, 0xffffffff
push esi
mov esi, dword [esp + 0x90]
push edi
xor edi, edi
mov dword [esp + 0x38], eax
mov dword [esp + 0x44], eax
cmp dword [esi + 0x18], edi
mov dword [esp + 0x24], edi
mov dword [esp + 0x58], edi
mov dword [esp + 0x34], edi
mov dword [esp + 0x48], edi
mov dword [esp + 0x40], edi
mov dword [esp + 0x60], edi
mov dword [esp + 0x68], edi
jne 0x4492d7
cmp dword [0x4696e8], edi
je 0x4471a3
cmp dword [0x4696f0], edi
jle 0x4471a3
call dword [sym.imp.KERNEL32.dll_GetCurrentThreadId]
cmp dword [0x4696cc], eax
je 0x4492d7
mov eax, dword [esi]
mov ecx, dword [esp + 0x98]
push ebp
mov dword [esp + 0x54], eax
push ecx
mov eax, esi
call fcn.0043ddc0
mov ebp, eax
add esp, 4
cmp ebp, edi
mov dword [esp + 0x10], ebp
je 0x4492d6
mov eax, dword [esi]
push ebx
mov ebx, dword [ebp + 0x4c]
cmp ebx, edi
mov dword [esp + 0x30], 0xfff0bdc0
je 0x447200
mov edx, dword [eax]
xor ecx, ecx
cmp edx, edi
mov dword [esp + 0x30], ecx
jle 0x447200
mov eax, dword [eax + 4]
add eax, 0x14
mov edi, edi
cmp dword [eax], ebx
je 0x4471fc
inc ecx
add eax, 0x18
cmp ecx, edx
jl 0x4471f0
mov dword [esp + 0x30], ecx
mov ebx, dword [esp + 0xa4]
push 0x64
mov eax, ebp
call fcn.004144c0
mov ebx, eax
mov eax, dword [ebp + 0x18]
xor edx, edx
test eax, eax
setne dl
push ebx
mov eax, ebp
mov ecx, esi
mov dword [esp + 0x64], ebx
mov dword [esp + 0x4c], edx
call fcn.00422a60
add esp, 8
test eax, eax
jne 0x4492d5
push ebp
push esi
call fcn.00444fc0
add esp, 8
test eax, eax
jne 0x4492d5
mov eax, dword [ebp + 4]
shl eax, 2
call fcn.00418240
test eax, eax
mov dword [esp + 0x34], eax
je 0x4492d5
mov edx, dword [ebp + 4]
xor ecx, ecx
test edx, edx
jle 0x44727f
jmp 0x447270
mov dword [eax + ecx*4], 0xffffffff
mov edx, dword [ebp + 4]
inc ecx
cmp ecx, edx
jl 0x447270
test ebx, ebx
je 0x447293
mov ecx, dword [esi + 0x1c]
mov dword [esp + 0x40], ecx
inc ecx
mov dword [esp + 0x4c], ecx
inc ecx
mov dword [esi + 0x1c], ecx
mov ecx, dword [esi + 0x1c]
mov edi, dword [esp + 0xa0]
mov dword [edi + 0x20], ecx
mov dword [esp + 0x28], ecx
mov ecx, dword [esi + 0x1c]
inc ecx
mov dword [esi + 0x1c], ecx
mov edx, ecx
mov ecx, dword [ebp + 0x10]
xor ebx, ebx
cmp ecx, ebx
je 0x4472c1
inc edx
mov dword [esi + 0x1c], edx
mov ecx, dword [ecx + 0x20]
cmp ecx, ebx
jne 0x4472b6
mov edx, dword [esp + 0xa4]
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
cmp dword [edx], ebx
mov dword [esp + 0x74], esi
mov dword [esp + 0x78], edi
mov dword [esp + 0x38], ebx
mov dword [esp + 0x20], ebx
jle 0x4474fe
xor esi, esi
mov dword [esp + 0x24], esi
mov edi, edi
mov eax, dword [esp + 0xa4]
mov ecx, dword [eax + 0xc]
mov ebx, dword [esi + ecx]
lea edi, [esp + 0x74]
call fcn.0042a0a0
test eax, eax
jne 0x4492c7
mov ecx, dword [esp + 0x14]
mov eax, dword [ecx + 4]
xor ebp, ebp
test eax, eax
mov dword [esp + 0x18], eax
jle 0x4473ed
mov edx, dword [esp + 0xa4]
mov eax, dword [edx + 0xc]
mov edi, dword [eax + esi + 4]
add eax, esi
mov esi, dword [ecx + 8]
mov dword [esp + 0x1c], eax
lea ebx, [ebx]
mov ecx, dword [esi]
mov al, byte [ecx]
test al, al
mov edx, edi
je 0x44739d
lea ebx, [ebx]
movzx ebx, byte [edx]
movzx eax, al
mov al, byte [eax + 0x45c650]
cmp al, byte [ebx + 0x45c650]
jne 0x44739d
mov al, byte [ecx + 1]
inc ecx
inc edx
test al, al
jne 0x447380
movzx edx, byte [edx]
movzx ecx, byte [ecx]
movzx eax, byte [edx + 0x45c650]
movzx edx, byte [ecx + 0x45c650]
sub edx, eax
je 0x4473c7
mov eax, dword [esp + 0x18]
inc ebp
add esi, 0x14
cmp ebp, eax
jl 0x447370
mov ecx, dword [esp + 0x14]
jmp 0x4473ed
mov ecx, dword [esp + 0x14]
cmp ebp, dword [ecx + 0xc]
jne 0x4473e2
mov eax, dword [esp + 0x1c]
mov edx, dword [eax]
mov dword [esp + 0x38], 1
mov dword [esp + 0x50], edx
mov eax, dword [esp + 0x34]
mov edx, dword [esp + 0x20]
mov dword [eax + ebp*4], edx
cmp ebp, dword [ecx + 4]
jl 0x44748b
mov eax, dword [esp + 0xa4]
mov ecx, dword [eax + 0xc]
mov edx, dword [esp + 0x24]
mov esi, dword [edx + ecx + 4]
lea edi, [edx + ecx]
mov dl, byte [esi]
test dl, dl
mov eax, esi
mov ecx, str._ROWID_
je 0x44743d
jmp 0x447420
movzx ebx, byte [ecx]
movzx edx, dl
mov dl, byte [edx + 0x45c650]
cmp dl, byte [ebx + 0x45c650]
jne 0x44743d
mov dl, byte [eax + 1]
inc eax
inc ecx
test dl, dl
jne 0x447420
movzx ecx, byte [ecx]
movzx eax, byte [eax]
movzx edx, byte [ecx + 0x45c650]
movzx ecx, byte [eax + 0x45c650]
sub ecx, edx
je 0x447479
mov edx, str.ROWID
mov ecx, esi
call fcn.0040fe50
test eax, eax
je 0x447479
mov edx, 0x45fed8
mov ecx, esi
call fcn.0040fe50
test eax, eax
jne 0x44752c
mov edx, dword [edi]
mov ecx, dword [esp + 0x14]
mov dword [esp + 0x38], 1
mov dword [esp + 0x50], edx
mov eax, dword [esp + 0x30]
mov edx, dword [esp + 0x58]
mov edx, dword [edx + 4]
lea eax, [eax + eax*2]
mov eax, dword [edx + eax*8]
push eax
mov eax, dword [ecx + 8]
lea edx, [ebp + ebp*4]
mov edx, dword [eax + edx*4]
mov eax, dword [ecx]
push edx
push eax
mov eax, dword [esp + 0xa8]
push 0x17
call fcn.00421370
add esp, 0x10
cmp eax, 1
je 0x4492c7
cmp eax, 2
mov eax, dword [esp + 0x34]
jne 0x4474d5
mov dword [eax + ebp*4], 0xffffffff
mov ecx, dword [esp + 0x20]
mov esi, dword [esp + 0x24]
mov edx, dword [esp + 0xa4]
mov edi, dword [edx]
inc ecx
add esi, 0xc
cmp ecx, edi
mov dword [esp + 0x20], ecx
mov dword [esp + 0x24], esi
jl 0x447320
mov ebp, dword [esp + 0x14]
mov esi, dword [ebp + 0x10]
test esi, esi
mov dword [esp + 0x20], 0
mov dword [esp + 0x24], 0
je 0x44761d
lea esp, [esp]
mov ecx, dword [esp + 0x38]
test ecx, ecx
je 0x44755b
xor ecx, ecx
jmp 0x447577
mov ecx, dword [esp + 0xa4]
mov eax, dword [esp + 0x20]
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.0041e420
add esp, 8
jmp 0x4492c7
mov edi, dword [esi + 4]
xor ecx, ecx
test edi, edi
jle 0x447577
mov edx, dword [esi + 8]
mov ebx, dword [edx]
cmp dword [eax + ebx*4], 0
jge 0x447577
inc ecx
add edx, 4
cmp ecx, edi
jl 0x447567
cmp ecx, dword [esi + 4]
jge 0x447580
inc dword [esp + 0x24]
mov edi, dword [esp + 0x20]
mov esi, dword [esi + 0x20]
inc edi
test esi, esi
mov dword [esp + 0x20], edi
jne 0x447520
test edi, edi
jle 0x44761d
mov ebx, dword [esp + 0x24]
lea edi, [edi + ebx*4]
test edi, edi
jle 0x447602
mov eax, dword [0x4696e8]
test eax, eax
je 0x4475c3
mov eax, dword [0x4696f0]
test eax, eax
jle 0x4475c3
call dword [sym.imp.KERNEL32.dll_GetCurrentThreadId]
cmp dword [0x4696cc], eax
je 0x447602
push edi
call dword [sym.imp.MSVCR71.dll_malloc]
mov esi, eax
add esp, 4
test esi, esi
jne 0x447602
mov eax, dword [0x4696e8]
test eax, eax
je 0x4475f3
mov eax, dword [0x4696f0]
test eax, eax
jle 0x4475f3
call dword [sym.imp.KERNEL32.dll_GetCurrentThreadId]
cmp dword [0x4696cc], eax
je 0x447602
call fcn.00410f50
mov dword [0x4696e8], 1
test esi, esi
mov dword [esp + 0x60], esi
je 0x4492c7
mov ebp, dword [esp + 0x14]
mov eax, dword [esp + 0x34]
lea ecx, [esi + ebx*4]
mov dword [esp + 0x3c], ecx
mov esi, dword [ebp + 0x10]
test esi, esi
je 0x44767a
mov edx, dword [esp + 0x60]
mov ebx, dword [esp + 0x3c]
mov dword [esp + 0x24], edx
mov ecx, dword [esp + 0x38]
test ecx, ecx
je 0x44763c
xor ecx, ecx
jmp 0x447658
mov edi, dword [esi + 4]
xor ecx, ecx
test edi, edi
jle 0x447658
mov edx, dword [esi + 8]
mov ebp, dword [edx]
cmp dword [eax + ebp*4], 0
jge 0x447658
inc ecx
add edx, 4
cmp ecx, edi
jl 0x447648
cmp ecx, dword [esi + 4]
jge 0x44766f
mov ecx, dword [esp + 0x24]
mov dword [ecx], esi
add ecx, 4
mov dword [esp + 0x24], ecx
mov byte [ebx], 1
jmp 0x447672
mov byte [ebx], 0
mov esi, dword [esi + 0x20]
inc ebx
test esi, esi
jne 0x447630
mov esi, dword [esp + 0x9c]
mov ebp, dword [esi + 0xc]
test ebp, ebp
jne 0x44769c
mov ebx, dword [esi]
call fcn.0041aee0
mov ebp, eax
test ebp, ebp
mov dword [esi + 0xc], eax
je 0x4492b5
mov al, byte [esi + 0x13]
test al, al
jne 0x4476aa
mov byte [ebp + 0x232], 1
mov eax, dword [esp + 0x30]
push eax
push 1
mov eax, esi
call fcn.00435ec0
mov eax, dword [esp + 0x1c]
mov cl, byte [eax + 0x39]
add esp, 8
test cl, cl
je 0x447707
mov ecx, dword [esp + 0xa8]
mov edx, dword [esp + 0x34]
push ecx
mov ecx, dword [esp + 0x54]
push edx
mov edx, dword [esp + 0xac]
push ecx
push edx
push eax
mov eax, dword [esp + 0xb4]
push eax
push esi
call fcn.00442630
add esp, 0x1c
xor eax, eax
mov dword [esp + 0xa8], eax
mov dword [esp + 0xa0], eax
jmp 0x4492b5
mov ebx, dword [esp + 0xa8]
lea edi, [esp + 0x74]
call fcn.0042a0a0
test eax, eax
jne 0x4492b5
mov eax, dword [esp + 0x44]
test eax, eax
je 0x447779
mov eax, dword [esp + 0x14]
mov edx, dword [eax]
mov ecx, dword [esi + 0xb0]
mov dword [esi + 0xb0], edx
mov eax, dword [eax + 0x18]
push eax
mov dword [esp + 0x74], esi
mov dword [esp + 0x70], ecx
call fcn.004207d0
mov ecx, dword [esp + 0x2c]
push 0
push 0
push 0
push 0
push ecx
mov edi, eax
push 8
push edi
push esi
call fcn.00441560
add esp, 0x24
test edi, edi
je 0x447779
push edi
call fcn.00417dc0
push edi
call dword [sym.imp.MSVCR71.dll_free]
add esp, 8
mov edx, dword [esp + 0xa0]
push 0
push ebx
push edx
push esi
call fcn.004376e0
mov ebx, eax
add esp, 0x10
test ebx, ebx
je 0x4492a1
mov edi, dword [esp + 0x14]
mov cl, byte [edi + 0x39]
mov eax, dword [esp + 0x28]
neg cl
push 0
push eax
mov esi, ebp
sbb ecx, ecx
and ecx, 0xffffffe6
add ecx, 0x26
push ecx
call fcn.0041f960
push 0
push 0
push 0x3a
call fcn.0041f960
push ebx
call fcn.00426580
mov edx, dword [esp + 0x74]
mov al, byte [edx + 8]
add esp, 0x1c
test al, al
jns 0x447801
mov ecx, dword [esp + 0x9c]
mov eax, dword [ecx + 0xac]
test eax, eax
jne 0x447801
mov eax, dword [ecx + 0x20]
push eax
lea edx, [eax + 1]
push 0
push 0x31
mov dword [esp + 0x74], eax
mov dword [ecx + 0x20], edx
call fcn.0041f960
add esp, 0xc
mov eax, dword [esp + 0x5c]
test eax, eax
je 0x447b25
mov ebx, dword [esp + 0x4c]
push 0
push ebx
push 0x79
mov esi, ebp
call fcn.0041f960
mov eax, dword [edi + 4]
push eax
push ebx
push 0x69
call fcn.0041f960
mov ecx, dword [esp + 0x58]
push 0
push ecx
push 0x79
call fcn.0041f960
mov edx, dword [edi + 4]
mov eax, dword [esp + 0x64]
push edx
push eax
push 0x69
call fcn.0041f960
push 0
push 0
push 0x62
call fcn.0041f960
mov dword [esp + 0x68], eax
mov eax, dword [esp + 0x80]
add esp, 0x3c
test eax, eax
jne 0x4478f8
push 0
push 0
push 0x5f
call fcn.0041f960
push 0
push 0
push 0x5f
call fcn.0041f960
mov al, byte [edi + 0x39]
add esp, 0x18
test al, al
jne 0x4478f8
mov ecx, dword [esp + 0x9c]
mov eax, dword [ecx + 0xc]
test eax, eax
mov dword [esp + 0x24], eax
jne 0x4478aa
mov esi, ecx
mov ebx, dword [esi]
call fcn.0041aee0
mov dword [esi + 0xc], eax
mov dword [esp + 0x24], eax
mov edx, dword [edi]
mov eax, dword [esp + 0x30]
mov ebx, dword [edi + 0x14]
mov esi, dword [esp + 0x9c]
push edx
push 0
push eax
call fcn.00421400
mov ecx, dword [esp + 0x3c]
mov esi, dword [esp + 0x30]
push 0
push ecx
push 0x30
call fcn.0041f960
mov edx, dword [edi + 0x14]
mov ebx, dword [esp + 0x40]
push edx
push ebx
push 0xe
call fcn.0041f960
mov eax, dword [edi + 4]
push eax
push ebx
push 0x69
call fcn.0041f960
mov ebx, dword [esp + 0x7c]
add esp, 0x30
mov edi, dword [esp + 0x28]
push 0
push edi
push 0x81
mov esi, ebp
call fcn.0041f960
push 0
push edi
push 0x26
call fcn.0041f960
push 0
push edi
push 0x2a
call fcn.0041f960
push 0
push ebx
push 0x72
call fcn.0041f960
mov eax, dword [esp + 0x68]
add esp, 0x30
test eax, eax
je 0x44794a
mov ecx, dword [esp + 0x50]
mov edi, dword [esp + 0x9c]
push ecx
call fcn.004338a0
add esp, 4
jmp 0x447959
push 0
push edi
push 0x26
mov esi, ebp
call fcn.0041f960
add esp, 0xc
mov eax, dword [esp + 0x14]
mov ecx, dword [eax + 4]
xor esi, esi
test ecx, ecx
mov dword [esp + 0x20], esi
jle 0x447a36
mov edi, edi
cmp esi, dword [eax + 0xc]
jne 0x4479d0
mov edi, dword [ebp + 0xc]
cmp dword [ebp + 0x10], edi
jg 0x4479a7
lea eax, [edi + 1]
mov ebx, ebp
call fcn.0041f8f0
mov eax, dword [0x4696e8]
test eax, eax
je 0x4479a7
mov eax, dword [0x4696f0]
test eax, eax
jle 0x4479a7
call dword [sym.imp.KERNEL32.dll_GetCurrentThreadId]
cmp dword [0x4696cc], eax
je 0x447a22
mov eax, dword [ebp + 0xc]
xor ecx, ecx
inc eax
mov dword [ebp + 0xc], eax
mov eax, dword [ebp + 0x14]
lea edx, [edi + edi*4]
lea eax, [eax + edx*4]
mov byte [eax], 0x7b
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 0x447a22
mov ecx, dword [esp + 0x34]
mov eax, dword [ecx + esi*4]
test eax, eax
jge 0x447a02
mov edi, dword [esp + 0x20]
mov edx, dword [esp + 0x28]
push edi
push edx
push 3
mov esi, ebp
call fcn.0041f960
mov eax, dword [esp + 0x20]
add esp, 0xc
mov ecx, edi
mov edx, ebp
call fcn.0042c780
mov esi, edi
jmp 0x447a22
mov ecx, dword [esp + 0xa4]
mov edx, dword [ecx + 0xc]
mov edi, dword [esp + 0x9c]
lea eax, [eax + eax*2]
mov eax, dword [edx + eax*4]
push eax
call fcn.004338a0
add esp, 4
mov eax, dword [esp + 0x14]
mov ecx, dword [eax + 4]
inc esi
cmp esi, ecx
mov dword [esp + 0x20], esi
jl 0x447970
mov edi, dword [ebp + 0xc]
cmp dword [ebp + 0x10], edi
mov ecx, dword [esp + 0x14]
mov esi, dword [ecx + 4]
jg 0x447a6f
lea eax, [edi + 1]
mov ebx, ebp
call fcn.0041f8f0
mov eax, dword [0x4696e8]
test eax, eax
je 0x447a6f
mov eax, dword [0x4696f0]
test eax, eax
jle 0x447a6f
call dword [sym.imp.KERNEL32.dll_GetCurrentThreadId]
cmp dword [0x4696cc], eax
je 0x447a96
mov eax, dword [ebp + 0xc]
xor ecx, ecx
inc eax
mov dword [ebp + 0xc], eax
mov eax, dword [ebp + 0x14]
lea edx, [edi + edi*4]
lea eax, [eax + edx*4]
mov byte [eax], 0x5c
mov dword [eax + 4], esi
mov dword [eax + 8], ecx
mov dword [eax + 0xc], ecx
mov dword [eax + 0x10], ecx
mov byte [ebp + 0x234], cl
mov eax, dword [esp + 0x44]
test eax, eax
jne 0x447aab
mov eax, dword [esp + 0x14]
push ebp
call fcn.0041cb90
add esp, 4
mov ecx, dword [esp + 0x9c]
mov eax, dword [ecx + 0x18]
test eax, eax
jne 0x4492a1
mov edi, dword [esp + 0x40]
push 0
push edi
push 0x72
mov esi, ebp
call fcn.0041f960
mov eax, dword [esp + 0x50]
add esp, 0xc
test eax, eax
jne 0x447ae9
mov edx, dword [esp + 0x28]
push 0
push edx
push 0x1f
call fcn.0041f960
add esp, 0xc
mov eax, dword [esp + 0x2c]
mov ecx, dword [esp + 0xac]
mov edx, dword [esp + 0x4c]
push eax
mov eax, dword [esp + 0x18]
push ecx
mov ecx, dword [esp + 0xac]
push edx
mov edx, dword [esp + 0xa8]
push edi
push eax
push 1
push ecx
push 0x64
push edx
call fcn.00449c90
add esp, 0x24
test eax, eax
jne 0x4492a1
mov eax, dword [esp + 0x44]
test eax, eax
mov esi, dword [esp + 0x9c]
jne 0x4489c8
mov eax, dword [esp + 0x14]
mov cl, byte [eax + 0x39]
test cl, cl
jne 0x4489c8
mov edi, dword [esi + 0xc]
test edi, edi
jne 0x447b5a
mov ebx, dword [esi]
call fcn.0041aee0
mov dword [esi + 0xc], eax
mov edi, eax
mov eax, dword [esp + 0x14]
mov ecx, dword [eax]
mov edx, dword [esp + 0x30]
mov ebx, dword [eax + 0x14]
mov esi, dword [esp + 0x9c]
push ecx
push 1
push edx
call fcn.00421400
mov eax, dword [esp + 0x3c]
push 0
push eax
push 0x30
mov esi, edi
call fcn.0041f960
mov ecx, dword [esp + 0x2c]
mov edx, dword [ecx + 0x14]
mov ebx, dword [esp + 0x40]
push edx
push ebx
push 9
call fcn.0041f960
mov eax, dword [esp + 0x38]
mov ecx, dword [eax + 4]
push ecx
push ebx
push 0x69
call fcn.0041f960
mov eax, dword [esp + 0xdc]
mov ecx, 5
add esp, 0x30
cmp eax, ecx
je 0x447bdf
mov edx, dword [esp + 0x14]
mov eax, dword [edx + 0x10]
test eax, eax
mov dword [esp + 0x48], 0
je 0x447be7
cmp byte [eax + 0x18], cl
je 0x447bdf
mov eax, dword [eax + 0x20]
test eax, eax
jne 0x447bd1
jmp 0x447be7
mov dword [esp + 0x48], 1
mov eax, dword [esp + 0x14]
mov eax, dword [eax + 0x10]
test eax, eax
mov dword [esp + 0x20], 0
mov dword [esp + 0x24], eax
je 0x44806e
mov eax, dword [esp + 0x48]
test eax, eax
jne 0x447c1c
mov ecx, dword [esp + 0x20]
mov edx, dword [esp + 0x3c]
cmp byte [ecx + edx], 0
je 0x448052
mov eax, dword [esp + 0x24]
mov ecx, dword [esp + 0x9c]
push eax
push ecx
call fcn.0042ae20
mov ecx, dword [ebp + 0xc]
mov edx, dword [ebp + 0x10]
add esp, 8
cmp edx, ecx
mov dword [esp + 0x18], eax
mov dword [esp + 0x1c], ecx
mov dword [esp + 0x10], edx
jg 0x447ee5
mov edi, dword [ebp + 0x4c]
xor eax, eax
inc ecx
cmp edi, 0xbdf20da3
sete al
test eax, eax
jne 0x447c66
cmp edx, ecx
jge 0x447da6
xor ebx, ebx
mov edi, dword [ebp + 0x14]
test eax, eax
mov eax, dword [0x4696e8]
sete bl
imul ebx, ebx, 0x64
add ebx, ecx
lea esi, [ebx + ebx*4]
shl esi, 2
test eax, eax
je 0x447c9f
mov eax, dword [0x4696f0]
test eax, eax
jle 0x447c9f
call dword [sym.imp.KERNEL32.dll_GetCurrentThreadId]
cmp dword [0x4696cc], eax
je 0x447da6
test edi, edi
jne 0x447d34
test esi, esi
jle 0x447d30
mov eax, dword [0x4696e8]
test eax, eax
je 0x447ccf
mov eax, dword [0x4696f0]
test eax, eax
jle 0x447ccf
call dword [sym.imp.KERNEL32.dll_GetCurrentThreadId]
cmp dword [0x4696cc], eax
je 0x447d30
push esi
call dword [sym.imp.MSVCR71.dll_malloc]
mov edi, eax
add esp, 4
test edi, edi
mov dword [esp + 0x54], edi
jne 0x447d16
mov eax, dword [0x4696e8]
test eax, eax
je 0x447d03
mov eax, dword [0x4696f0]
test eax, eax
jle 0x447d03
call dword [sym.imp.KERNEL32.dll_GetCurrentThreadId]
cmp dword [0x4696cc], eax
je 0x447d30
call fcn.00410f50
mov dword [0x4696e8], 1
mov esi, edi
jmp 0x447d74
mov edi, dword [esp + 0x54]
mov ecx, esi
mov edx, ecx
shr ecx, 2
xor eax, eax
rep stosd dword es:[edi], eax
mov ecx, edx
and ecx, 3
rep stosb byte es:[edi], al
mov edi, dword [esp + 0x54]
mov esi, edi
jmp 0x447d74
push esi
push edi
call dword [sym.imp.MSVCR71.dll_realloc]
mov esi, eax
add esp, 8
test esi, esi
jne 0x447d78
mov eax, dword [0x4696e8]
test eax, eax
je 0x447d65
mov eax, dword [0x4696f0]
test eax, eax
jle 0x447d65
call dword [sym.imp.KERNEL32.dll_GetCurrentThreadId]
cmp dword [0x4696cc], eax
je 0x447d74
call fcn.00410f50
mov dword [0x4696e8], 1
test esi, esi
je 0x447da6
mov eax, dword [esp + 0x10]
cmp ebx, eax
mov dword [ebp + 0x10], ebx
mov dword [ebp + 0x14], esi
jle 0x447da6
mov edx, eax
sub ebx, edx
lea ecx, [ebx + ebx*4]
shl ecx, 2
lea edx, [edx + edx*4]
lea edi, [esi + edx*4]
mov edx, ecx
shr ecx, 2
xor eax, eax
rep stosd dword es:[edi], eax
mov ecx, edx
and ecx, 3
rep stosb byte es:[edi], al
mov eax, dword [0x4696e8]
xor esi, esi
cmp eax, esi
je 0x447dc7
cmp dword [0x4696f0], esi
jle 0x447dc7
call dword [sym.imp.KERNEL32.dll_GetCurrentThreadId]
cmp dword [0x4696cc], eax
je 0x447df5
mov ecx, dword [esp + 0x1c]
mov eax, dword [ebp + 0xc]
mov edx, dword [esp + 0x30]
inc eax
mov dword [ebp + 0xc], eax
lea eax, [ecx + ecx*4]
mov ecx, dword [ebp + 0x14]
lea eax, [ecx + eax*4]
mov byte [eax], 0x30
mov dword [eax + 4], edx
mov dword [eax + 8], esi
mov dword [eax + 0xc], esi
mov dword [eax + 0x10], esi
mov byte [ebp + 0x234], 0
mov eax, dword [esp + 0x24]
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 + 0x54], eax
mov dword [esp + 0x10], ecx
jg 0x447fa1
mov esi, dword [ebp + 0x4c]
mov ecx, eax
xor eax, eax
inc ecx
cmp esi, 0xbdf20da3
sete al
test eax, eax
jne 0x447e35
cmp dword [esp + 0x10], ecx
jge 0x447f7c
xor ebx, ebx
mov edi, dword [ebp + 0x14]
test eax, eax
mov eax, dword [0x4696e8]
sete bl
imul ebx, ebx, 0x64
add ebx, ecx
lea esi, [ebx + ebx*4]
shl esi, 2
test eax, eax
je 0x447e6e
mov eax, dword [0x4696f0]
test eax, eax
jle 0x447e6e
call dword [sym.imp.KERNEL32.dll_GetCurrentThreadId]
cmp dword [0x4696cc], eax
je 0x447f7c
test edi, edi
jne 0x447f0a
test esi, esi
jle 0x447f06
mov eax, dword [0x4696e8]
test eax, eax
je 0x447e9e
mov eax, dword [0x4696f0]
test eax, eax
jle 0x447e9e
call dword [sym.imp.KERNEL32.dll_GetCurrentThreadId]
cmp dword [0x4696cc], eax
je 0x447f06
push esi
call dword [sym.imp.MSVCR71.dll_malloc]
mov edi, eax
add esp, 4
test edi, edi
mov dword [esp + 0x1c], edi
jne 0x447eec
mov eax, dword [0x4696e8]
test eax, eax
je 0x447ed2
mov eax, dword [0x4696f0]
test eax, eax
jle 0x447ed2
call dword [sym.imp.KERNEL32.dll_GetCurrentThreadId]
cmp dword [0x4696cc], eax
je 0x447f06
call fcn.00410f50
mov dword [0x4696e8], 1
mov esi, edi
jmp 0x447f4a
xor esi, esi
jmp 0x447dcb
mov edi, dword [esp + 0x1c]
mov ecx, esi
mov edx, ecx
shr ecx, 2
xor eax, eax
rep stosd dword es:[edi], eax
mov ecx, edx
and ecx, 3
rep stosb byte es:[edi], al
mov edi, dword [esp + 0x1c]
mov esi, edi
jmp 0x447f4a
push esi
push edi
call dword [sym.imp.MSVCR71.dll_realloc]
mov esi, eax
add esp, 8
test esi, esi
jne 0x447f4e
mov eax, dword [0x4696e8]
test eax, eax
je 0x447f3b
mov eax, dword [0x4696f0]
test eax, eax
jle 0x447f3b
call dword [sym.imp.KERNEL32.dll_GetCurrentThreadId]
cmp dword [0x4696cc], eax
je 0x447f4a
call fcn.00410f50
mov dword [0x4696e8], 1
test esi, esi
je 0x447f7c
mov eax, dword [esp + 0x10]
cmp ebx, eax
mov dword [ebp + 0x10], ebx
mov dword [ebp + 0x14], esi
jle 0x447f7c
mov edx, eax
sub ebx, edx
lea ecx, [ebx + ebx*4]
shl ecx, 2
lea edx, [edx + edx*4]
lea edi, [esi + edx*4]
mov edx, ecx
shr ecx, 2
xor eax, eax
rep stosd dword es:[edi], eax
mov ecx, edx
and ecx, 3
rep stosb byte es:[edi], al
mov eax, dword [0x4696e8]
xor edi, edi
cmp eax, edi
je 0x447fa1
cmp dword [0x4696f0], edi
jle 0x447fa1
call dword [sym.imp.KERNEL32.dll_GetCurrentThreadId]
cmp dword [0x4696cc], eax
jne 0x447fa1
xor esi, esi
jmp 0x447fdf
mov eax, dword [ebp + 0xc]
mov edx, dword [ebp + 0x14]
mov ecx, dword [esp + 0x54]
mov esi, dword [esp + 0x28]
inc eax
mov dword [ebp + 0xc], eax
lea eax, [ecx + ecx*4]
lea eax, [edx + eax*4]
mov edx, dword [esp + 0x20]
lea edx, [esi + edx + 1]
mov dword [eax + 4], edx
mov edx, dword [esp + 0x64]
xor edi, edi
mov byte [eax], 9
mov dword [eax + 8], edx
mov dword [eax + 0xc], edi
mov dword [eax + 0x10], edi
mov byte [ebp + 0x234], 0
mov esi, ecx
cmp dword [ebp + 0x14], edi
je 0x448044
cmp dword [0x4696e8], edi
je 0x448002
cmp dword [0x4696f0], edi
jle 0x448002
call dword [sym.imp.KERNEL32.dll_GetCurrentThreadId]
cmp dword [0x4696cc], eax
je 0x448044
cmp esi, edi
jl 0x44800b
cmp esi, dword [ebp + 0xc]
jl 0x448011
mov esi, dword [ebp + 0xc]
dec esi
js 0x448052
mov ecx, dword [ebp + 0x14]
lea eax, [esi + esi*4]
lea esi, [ecx + eax*4]
mov ecx, dword [esi + 0xc]
mov eax, dword [esi + 0x10]
call fcn.0041af60
mov eax, dword [esp + 0x18]
cmp eax, edi
mov dword [esi + 0xc], edi
jne 0x448038
mov dword [esi + 0xc], edi
mov dword [esi + 0x10], edi
jmp 0x448052
mov dword [esi + 0xc], eax
mov dword [esi + 0x10], 0xfffffffa
jmp 0x448052
mov ecx, dword [esp + 0x18]
mov eax, 0xfffffff7
call fcn.0041af60
mov edx, dword [esp + 0x24]
mov eax, dword [edx + 0x20]
mov edx, dword [esp + 0x20]
inc edx
test eax, eax
mov dword [esp + 0x24], eax
mov dword [esp + 0x20], edx
jne 0x447c02
mov eax, dword [esp + 0x5c]
test eax, eax
jne 0x448136
mov esi, dword [ebp + 0xc]
cmp dword [ebp + 0x10], esi
jg 0x4480b6
lea eax, [esi + 1]
mov ebx, ebp
call fcn.0041f8f0
mov eax, dword [0x4696e8]
test eax, eax
je 0x4480b6
mov eax, dword [0x4696f0]
test eax, eax
jle 0x4480b6
call dword [sym.imp.KERNEL32.dll_GetCurrentThreadId]
cmp dword [0x4696cc], eax
jne 0x4480b6
mov dword [esp + 0x2c], 0
jmp 0x4480e1
mov eax, dword [ebp + 0xc]
mov ecx, dword [ebp + 0x14]
inc eax
mov dword [ebp + 0xc], eax
lea eax, [esi + esi*4]
lea eax, [ecx + eax*4]
xor ecx, ecx
mov byte [eax], 0x62
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
mov esi, dword [ebp + 0xc]
cmp dword [ebp + 0x10], esi
jg 0x448113
lea eax, [esi + 1]
mov ebx, ebp
call fcn.0041f8f0
mov eax, dword [0x4696e8]
test eax, eax
je 0x448113
mov eax, dword [0x4696f0]
test eax, eax
jle 0x448113
call dword [sym.imp.KERNEL32.dll_GetCurrentThreadId]
cmp dword [0x4696cc], eax
je 0x448136
inc dword [ebp + 0xc]
mov eax, dword [ebp + 0x14]
xor ecx, ecx
lea edx, [esi + esi*4]
lea eax, [eax + edx*4]
mov byte [eax], 0x5f
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 ecx, dword [ebp + 0xc]
mov edx, dword [ebp + 0x10]
cmp edx, ecx
mov dword [esp + 0x1c], ecx
mov dword [esp + 0x10], edx
jg 0x4482cb
mov edi, dword [ebp + 0x4c]
xor eax, eax
inc ecx
cmp edi, 0xbdf20da3
sete al
test eax, eax
jne 0x448167
cmp edx, ecx
jge 0x4482a7
xor ebx, ebx
mov edi, dword [ebp + 0x14]
test eax, eax
mov eax, dword [0x4696e8]
sete bl
imul ebx, ebx, 0x64
add ebx, ecx
lea esi, [ebx + ebx*4]
shl esi, 2
test eax, eax
je 0x4481a0
mov eax, dword [0x4696f0]
test eax, eax
jle 0x4481a0
call dword [sym.imp.KERNEL32.dll_GetCurrentThreadId]
cmp dword [0x4696cc], eax
je 0x4482a7
test edi, edi
jne 0x448235
test esi, esi
jle 0x448231
mov eax, dword [0x4696e8]
test eax, eax
je 0x4481d0
mov eax, dword [0x4696f0]
test eax, eax
jle 0x4481d0
call dword [sym.imp.KERNEL32.dll_GetCurrentThreadId]
cmp dword [0x4696cc], eax
je 0x448231
push esi
call dword [sym.imp.MSVCR71.dll_malloc]
mov edi, eax
add esp, 4
test edi, edi
mov dword [esp + 0x18], edi
jne 0x448217
mov eax, dword [0x4696e8]
test eax, eax
je 0x448204
mov eax, dword [0x4696f0]
test eax, eax
jle 0x448204
call dword [sym.imp.KERNEL32.dll_GetCurrentThreadId]
cmp dword [0x4696cc], eax
je 0x448231
call fcn.00410f50
mov dword [0x4696e8], 1
mov esi, edi
jmp 0x448275
mov edi, dword [esp + 0x18]
mov ecx, esi
mov edx, ecx
shr ecx, 2
xor eax, eax
rep stosd dword es:[edi], eax
mov ecx, edx
and ecx, 3
rep stosb byte es:[edi], al
mov edi, dword [esp + 0x18]
mov esi, edi
jmp 0x448275
push esi
push edi
call dword [sym.imp.MSVCR71.dll_realloc]
mov esi, eax
add esp, 8
test esi, esi
jne 0x448279
mov eax, dword [0x4696e8]
test eax, eax
je 0x448266
mov eax, dword [0x4696f0]
test eax, eax
jle 0x448266
call dword [sym.imp.KERNEL32.dll_GetCurrentThreadId]
cmp dword [0x4696cc], eax
je 0x448275
call fcn.00410f50
mov dword [0x4696e8], 1
test esi, esi
je 0x4482a7
mov eax, dword [esp + 0x10]
cmp ebx, eax
mov dword [ebp + 0x10], ebx
mov dword [ebp + 0x14], esi
jle 0x4482a7
mov edx, eax
sub ebx, edx
lea ecx, [ebx + ebx*4]
shl ecx, 2
lea edx, [edx + edx*4]
lea edi, [esi + edx*4]
mov edx, ecx
shr ecx, 2
xor eax, eax
rep stosd dword es:[edi], eax
mov ecx, edx
and ecx, 3
rep stosb byte es:[edi], al
mov eax, dword [0x4696e8]
test eax, eax
je 0x4482c7
mov eax, dword [0x4696f0]
test eax, eax
jle 0x4482c7
call dword [sym.imp.KERNEL32.dll_GetCurrentThreadId]
cmp dword [0x4696cc], eax
je 0x448301
mov ecx, dword [esp + 0x1c]
mov eax, dword [ebp + 0xc]
mov edx, dword [esp + 0x28]
inc eax
mov dword [ebp + 0xc], eax
lea eax, [ecx + ecx*4]
mov ecx, dword [ebp + 0x14]
lea eax, [ecx + eax*4]
mov ecx, dword [esp + 0x2c]
mov byte [eax], 0x2d
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
mov eax, dword [esp + 0x38]
test eax, eax
je 0x448379
mov edx, dword [esp + 0x50]
mov eax, dword [esp + 0x9c]
push edx
push eax
call fcn.00432eb0
mov esi, dword [ebp + 0xc]
mov eax, dword [ebp + 0x10]
add esp, 8
cmp eax, esi
jg 0x448352
lea eax, [esi + 1]
mov ebx, ebp
call fcn.0041f8f0
mov eax, dword [0x4696e8]
test eax, eax
je 0x448352
mov eax, dword [0x4696f0]
test eax, eax
jle 0x448352
call dword [sym.imp.KERNEL32.dll_GetCurrentThreadId]
cmp dword [0x4696cc], eax
je 0x448379
mov eax, dword [ebp + 0xc]
mov edx, dword [ebp + 0x14]
inc eax
mov dword [ebp + 0xc], eax
lea ecx, [esi + esi*4]
lea eax, [edx + ecx*4]
xor ecx, ecx
mov byte [eax], 0x24
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 [esp + 0x14]
mov ecx, dword [eax + 4]
xor esi, esi
cmp ecx, esi
mov dword [esp + 0x20], esi
jle 0x44878d
mov edi, edi
mov ecx, dword [esp + 0x14]
mov eax, dword [esp + 0x20]
cmp eax, dword [ecx + 0xc]
jne 0x44856a
mov eax, dword [ebp + 0xc]
mov ecx, dword [ebp + 0x10]
cmp ecx, eax
mov dword [esp + 0x1c], eax
mov dword [esp + 0x10], ecx
jg 0x44853a
mov esi, dword [ebp + 0x4c]
mov ecx, eax
xor eax, eax
inc ecx
cmp esi, 0xbdf20da3
sete al
test eax, eax
jne 0x4483d6
cmp dword [esp + 0x10], ecx
jge 0x448516
xor ebx, ebx
mov edi, dword [ebp + 0x14]
test eax, eax
mov eax, dword [0x4696e8]
sete bl
imul ebx, ebx, 0x64
add ebx, ecx
lea esi, [ebx + ebx*4]
shl esi, 2
test eax, eax
je 0x44840f
mov eax, dword [0x4696f0]
test eax, eax
jle 0x44840f
call dword [sym.imp.KERNEL32.dll_GetCurrentThreadId]
cmp dword [0x4696cc], eax
je 0x448516
test edi, edi
jne 0x4484a4
test esi, esi
jle 0x4484a0
mov eax, dword [0x4696e8]
test eax, eax
je 0x44843f
mov eax, dword [0x4696f0]
test eax, eax
jle 0x44843f
call dword [sym.imp.KERNEL32.dll_GetCurrentThreadId]
cmp dword [0x4696cc], eax
je 0x4484a0
push esi
call dword [sym.imp.MSVCR71.dll_malloc]
mov edi, eax
add esp, 4
test edi, edi
mov dword [esp + 0x18], edi
jne 0x448486
mov eax, dword [0x4696e8]
test eax, eax
je 0x448473
mov eax, dword [0x4696f0]
test eax, eax
jle 0x448473
call dword [sym.imp.KERNEL32.dll_GetCurrentThreadId]
cmp dword [0x4696cc], eax
je 0x4484a0
call fcn.00410f50
mov dword [0x4696e8], 1
mov esi, edi
jmp 0x4484e4
mov edi, dword [esp + 0x18]
mov ecx, esi
mov edx, ecx
shr ecx, 2
xor eax, eax
rep stosd dword es:[edi], eax
mov ecx, edx
and ecx, 3
rep stosb byte es:[edi], al
mov edi, dword [esp + 0x18]
mov esi, edi
jmp 0x4484e4
push esi
push edi
call dword [sym.imp.MSVCR71.dll_realloc]
mov esi, eax
add esp, 8
test esi, esi
jne 0x4484e8
mov eax, dword [0x4696e8]
test eax, eax
je 0x4484d5
mov eax, dword [0x4696f0]
test eax, eax
jle 0x4484d5
call dword [sym.imp.KERNEL32.dll_GetCurrentThreadId]
cmp dword [0x4696cc], eax
je 0x4484e4
call fcn.00410f50
mov dword [0x4696e8], 1
test esi, esi
je 0x448516
mov eax, dword [esp + 0x10]
cmp ebx, eax
mov dword [ebp + 0x10], ebx
mov dword [ebp + 0x14], esi
jle 0x448516
mov edx, eax
sub ebx, edx
lea ecx, [ebx + ebx*4]
shl ecx, 2
lea edx, [edx + edx*4]
lea edi, [esi + edx*4]
mov edx, ecx
shr ecx, 2
xor eax, eax
rep stosd dword es:[edi], eax
mov ecx, edx
and ecx, 3
rep stosb byte es:[edi], al
mov eax, dword [0x4696e8]
test eax, eax
je 0x44853a
mov eax, dword [0x4696f0]
test eax, eax
jle 0x44853a
call dword [sym.imp.KERNEL32.dll_GetCurrentThreadId]
cmp dword [0x4696cc], eax
je 0x448773
mov eax, dword [ebp + 0xc]
mov ecx, dword [ebp + 0x14]
inc eax
mov dword [ebp + 0xc], eax
mov eax, dword [esp + 0x1c]
lea eax, [eax + eax*4]
lea eax, [ecx + eax*4]
xor ecx, ecx
mov byte [eax], 0x7b
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 0x448773
mov edx, dword [esp + 0x34]
mov eax, dword [edx + eax*4]
test eax, eax
jge 0x448752
mov eax, dword [ebp + 0xc]
mov ecx, dword [ebp + 0x10]
cmp ecx, eax
mov dword [esp + 0x1c], eax
mov dword [esp + 0x10], ecx
jg 0x44870e
mov esi, dword [ebp + 0x4c]
mov ecx, eax
xor eax, eax
inc ecx
cmp esi, 0xbdf20da3
sete al
test eax, eax
jne 0x4485ae
cmp dword [esp + 0x10], ecx
jge 0x4486ee
xor ebx, ebx
mov edi, dword [ebp + 0x14]
test eax, eax
mov eax, dword [0x4696e8]
sete bl
imul ebx, ebx, 0x64
add ebx, ecx
lea esi, [ebx + ebx*4]
shl esi, 2
test eax, eax
je 0x4485e7
mov eax, dword [0x4696f0]
test eax, eax
jle 0x4485e7
call dword [sym.imp.KERNEL32.dll_GetCurrentThreadId]
cmp dword [0x4696cc], eax
je 0x4486ee
test edi, edi
jne 0x44867c
test esi, esi
jle 0x448678
mov eax, dword [0x4696e8]
test eax, eax
je 0x448617
mov eax, dword [0x4696f0]
test eax, eax
jle 0x448617
call dword [sym.imp.KERNEL32.dll_GetCurrentThreadId]
cmp dword [0x4696cc], eax
je 0x448678
push esi
call dword [sym.imp.MSVCR71.dll_malloc]
mov edi, eax
add esp, 4
test edi, edi
mov dword [esp + 0x18], edi
jne 0x44865e
mov eax, dword [0x4696e8]
test eax, eax
je 0x44864b
mov eax, dword [0x4696f0]
test eax, eax
jle 0x44864b
call dword [sym.imp.KERNEL32.dll_GetCurrentThreadId]
cmp dword [0x4696cc], eax
je 0x448678
call fcn.00410f50
mov dword [0x4696e8], 1
mov esi, edi
jmp 0x4486bc
mov edi, dword [esp + 0x18]
mov ecx, esi
mov edx, ecx
shr ecx, 2
xor eax, eax
rep stosd dword es:[edi], eax
mov ecx, edx
and ecx, 3
rep stosb byte es:[edi], al
mov edi, dword [esp + 0x18]
mov esi, edi
jmp 0x4486bc
push esi
push edi
call dword [sym.imp.MSVCR71.dll_realloc]
mov esi, eax
add esp, 8
test esi, esi
jne 0x4486c0
mov eax, dword [0x4696e8]
test eax, eax
je 0x4486ad
mov eax, dword [0x4696f0]
test eax, eax
jle 0x4486ad
call dword [sym.imp.KERNEL32.dll_GetCurrentThreadId]
cmp dword [0x4696cc], eax
je 0x4486bc
call fcn.00410f50
mov dword [0x4696e8], 1
test esi, esi
je 0x4486ee
mov eax, dword [esp + 0x10]
cmp ebx, eax
mov dword [ebp + 0x10], ebx
mov dword [ebp + 0x14], esi
jle 0x4486ee
mov edx, eax
sub ebx, edx
lea ecx, [ebx + ebx*4]
shl ecx, 2
lea edx, [edx + edx*4]
lea edi, [esi + edx*4]
mov edx, ecx
shr ecx, 2
xor eax, eax
rep stosd dword es:[edi], eax
mov ecx, edx
and ecx, 3
rep stosb byte es:[edi], al
mov eax, dword [0x4696e8]
test eax, eax
je 0x44870e
mov eax, dword [0x4696f0]
test eax, eax
jle 0x44870e
call dword [sym.imp.KERNEL32.dll_GetCurrentThreadId]
cmp dword [0x4696cc], eax
je 0x448741
mov eax, dword [ebp + 0xc]
mov ecx, dword [ebp + 0x14]
mov edx, dword [esp + 0x28]
inc eax
mov dword [ebp + 0xc], eax
mov eax, dword [esp + 0x1c]
lea eax, [eax + eax*4]
lea eax, [ecx + eax*4]
mov ecx, dword [esp + 0x20]
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 + 0x20]
mov eax, dword [esp + 0x14]
mov edx, ebp
call fcn.0042c780
jmp 0x448773
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.00432eb0
add esp, 8
mov eax, dword [esp + 0x20]
mov ecx, dword [esp + 0x14]
mov edx, dword [ecx + 4]
inc eax
cmp eax, edx
mov dword [esp + 0x20], eax
jl 0x448390
xor esi, esi
mov edx, dword [esp + 0x2c]
mov eax, dword [esp + 0xac]
mov ebx, dword [esp + 0x38]
mov edi, dword [esp + 0x3c]
mov ecx, dword [esp + 0x28]
push edx
mov edx, dword [esp + 0x18]
push eax
push 1
push ebx
push edi
push ecx
mov ecx, dword [esp + 0xb4]
push edx
call fcn.0043e210
mov eax, dword [esp + 0x44]
push edi
push eax
mov eax, dword [esp + 0x38]
mov ecx, ebp
call fcn.0043bc50
add esp, 0x24
cmp ebx, esi
je 0x448998
mov ecx, dword [ebp + 0xc]
mov edx, dword [ebp + 0x10]
cmp edx, ecx
mov dword [esp + 0x64], ecx
mov dword [esp + 0x10], edx
jg 0x44896e
mov ebx, dword [ebp + 0x4c]
xor eax, eax
inc ecx
cmp ebx, 0xbdf20da3
sete al
cmp eax, esi
jne 0x448809
cmp edx, ecx
jge 0x448949
xor ebx, ebx
mov edi, dword [ebp + 0x14]
test eax, eax
mov eax, dword [0x4696e8]
sete bl
imul ebx, ebx, 0x64
add ebx, ecx
lea esi, [ebx + ebx*4]
shl esi, 2
test eax, eax
je 0x448842
mov eax, dword [0x4696f0]
test eax, eax
jle 0x448842
call dword [sym.imp.KERNEL32.dll_GetCurrentThreadId]
cmp dword [0x4696cc], eax
je 0x448949
test edi, edi
jne 0x4488d7
test esi, esi
jle 0x4488d3
mov eax, dword [0x4696e8]
test eax, eax
je 0x448872
mov eax, dword [0x4696f0]
test eax, eax
jle 0x448872
call dword [sym.imp.KERNEL32.dll_GetCurrentThreadId]
cmp dword [0x4696cc], eax
je 0x4488d3
push esi
call dword [sym.imp.MSVCR71.dll_malloc]
mov edi, eax
add esp, 4
test edi, edi
mov dword [esp + 0x18], edi
jne 0x4488b9
mov eax, dword [0x4696e8]
test eax, eax
je 0x4488a6
mov eax, dword [0x4696f0]
test eax, eax
jle 0x4488a6
call dword [sym.imp.KERNEL32.dll_GetCurrentThreadId]
cmp dword [0x4696cc], eax
je 0x4488d3
call fcn.00410f50
mov dword [0x4696e8], 1
mov esi, edi
jmp 0x448917
mov edi, dword [esp + 0x18]
mov ecx, esi
mov edx, ecx
shr ecx, 2
xor eax, eax
rep stosd dword es:[edi], eax
mov ecx, edx
and ecx, 3
rep stosb byte es:[edi], al
mov edi, dword [esp + 0x18]
mov esi, edi
jmp 0x448917
push esi
push edi
call dword [sym.imp.MSVCR71.dll_realloc]
mov esi, eax
add esp, 8
test esi, esi
jne 0x44891b
mov eax, dword [0x4696e8]
test eax, eax
je 0x448908
mov eax, dword [0x4696f0]
test eax, eax
jle 0x448908
call dword [sym.imp.KERNEL32.dll_GetCurrentThreadId]
cmp dword [0x4696cc], eax
je 0x448917
call fcn.00410f50
mov dword [0x4696e8], 1
test esi, esi
je 0x448949
mov eax, dword [esp + 0x10]
cmp ebx, eax
mov dword [ebp + 0x10], ebx
mov dword [ebp + 0x14], esi
jle 0x448949
mov edx, eax
sub ebx, edx
lea ecx, [ebx + ebx*4]
shl ecx, 2
lea edx, [edx + edx*4]
lea edi, [esi + edx*4]
mov edx, ecx
shr ecx, 2
xor eax, eax
rep stosd dword es:[edi], eax
mov ecx, edx
and ecx, 3
rep stosb byte es:[edi], al
mov eax, dword [0x4696e8]
xor esi, esi
cmp eax, esi
je 0x44896a
cmp dword [0x4696f0], esi
jle 0x44896a
call dword [sym.imp.KERNEL32.dll_GetCurrentThreadId]
cmp dword [0x4696cc], eax
je 0x448998
mov ecx, dword [esp + 0x64]
mov eax, dword [ebp + 0xc]
mov edx, dword [esp + 0x28]
inc eax
mov dword [ebp + 0xc], eax
lea eax, [ecx + ecx*4]
mov ecx, dword [ebp + 0x14]
lea eax, [ecx + eax*4]
mov byte [eax], 0x5d
mov dword [eax + 4], edx
mov dword [eax + 8], esi
mov dword [eax + 0xc], esi
mov dword [eax + 0x10], esi
mov byte [ebp + 0x234], 0
mov eax, dword [esp + 0x38]
mov ecx, dword [esp + 0x3c]
mov edx, dword [esp + 0x28]
push esi
push 0xffffffffffffffff
push 1
push eax
mov eax, dword [esp + 0x24]
push ecx
mov ecx, dword [esp + 0xb0]
push edx
push eax
push ecx
call fcn.00423c50
mov esi, dword [esp + 0xbc]
add esp, 0x20
mov edx, dword [esp + 0x58]
mov al, byte [edx + 8]
test al, al
jns 0x448baf
mov eax, dword [esi + 0xac]
test eax, eax
jne 0x448baf
mov eax, dword [ebp + 0xc]
mov ecx, dword [ebp + 0x10]
cmp ecx, eax
mov dword [esp + 0x1c], eax
mov dword [esp + 0x10], ecx
jg 0x448b7a
mov esi, dword [ebp + 0x4c]
mov ecx, eax
xor eax, eax
inc ecx
cmp esi, 0xbdf20da3
sete al
test eax, eax
jne 0x448a1a
cmp dword [esp + 0x10], ecx
jge 0x448b5a
xor ebx, ebx
mov edi, dword [ebp + 0x14]
test eax, eax
mov eax, dword [0x4696e8]
sete bl
imul ebx, ebx, 0x64
add ebx, ecx
lea esi, [ebx + ebx*4]
shl esi, 2
test eax, eax
je 0x448a53
mov eax, dword [0x4696f0]
test eax, eax
jle 0x448a53
call dword [sym.imp.KERNEL32.dll_GetCurrentThreadId]
cmp dword [0x4696cc], eax
je 0x448b5a
test edi, edi
jne 0x448ae8
test esi, esi
jle 0x448ae4
mov eax, dword [0x4696e8]
test eax, eax
je 0x448a83
mov eax, dword [0x4696f0]
test eax, eax
jle 0x448a83
call dword [sym.imp.KERNEL32.dll_GetCurrentThreadId]
cmp dword [0x4696cc], eax
je 0x448ae4
push esi
call dword [sym.imp.MSVCR71.dll_malloc]
mov edi, eax
add esp, 4
test edi, edi
mov dword [esp + 0x18], edi
jne 0x448aca
mov eax, dword [0x4696e8]
test eax, eax
je 0x448ab7
mov eax, dword [0x4696f0]
test eax, eax
jle 0x448ab7
call dword [sym.imp.KERNEL32.dll_GetCurrentThreadId]
cmp dword [0x4696cc], eax
je 0x448ae4
call fcn.00410f50
mov dword [0x4696e8], 1
mov esi, edi
jmp 0x448b28
mov edi, dword [esp + 0x18]
mov ecx, esi
mov edx, ecx
shr ecx, 2
xor eax, eax
rep stosd dword es:[edi], eax
mov ecx, edx
and ecx, 3
rep stosb byte es:[edi], al
mov edi, dword [esp + 0x18]
mov esi, edi
jmp 0x448b28
push esi
push edi
call dword [sym.imp.MSVCR71.dll_realloc]
mov esi, eax
add esp, 8
test esi, esi
jne 0x448b2c
mov eax, dword [0x4696e8]
test eax, eax
je 0x448b19
mov eax, dword [0x4696f0]
test eax, eax
jle 0x448b19
call dword [sym.imp.KERNEL32.dll_GetCurrentThreadId]
cmp dword [0x4696cc], eax
je 0x448b28
call fcn.00410f50
mov dword [0x4696e8], 1
test esi, esi
je 0x448b5a
mov eax, dword [esp + 0x10]
cmp ebx, eax
mov dword [ebp + 0x10], ebx
mov dword [ebp + 0x14], esi
jle 0x448b5a
mov edx, eax
sub ebx, edx
lea ecx, [ebx + ebx*4]
shl ecx, 2
lea edx, [edx + edx*4]
lea edi, [esi + edx*4]
mov edx, ecx
shr ecx, 2
xor eax, eax
rep stosd dword es:[edi], eax
mov ecx, edx
and ecx, 3
rep stosb byte es:[edi], al
mov eax, dword [0x4696e8]
test eax, eax
je 0x448b7a
mov eax, dword [0x4696f0]
test eax, eax
jle 0x448b7a
call dword [sym.imp.KERNEL32.dll_GetCurrentThreadId]
cmp dword [0x4696cc], eax
je 0x448baf
mov eax, dword [ebp + 0xc]
mov ecx, dword [ebp + 0x14]
mov edx, dword [esp + 0x68]
inc eax
mov dword [ebp + 0xc], eax
mov eax, dword [esp + 0x1c]
lea eax, [eax + eax*4]
lea eax, [ecx + eax*4]
xor ecx, ecx
mov byte [eax], 0x2e
mov dword [eax + 4], 1
mov dword [eax + 8], edx
mov dword [eax + 0xc], ecx
mov dword [eax + 0x10], ecx
mov byte [ebp + 0x234], cl
jmp 0x448bb1
xor ecx, ecx
cmp dword [esp + 0x5c], ecx
je 0x448fe6
cmp dword [esp + 0x44], ecx
jne 0x448fa6
mov eax, dword [esp + 0x14]
mov eax, dword [eax + 0x10]
cmp eax, ecx
mov dword [esp + 0x20], ecx
mov dword [esp + 0x24], eax
je 0x448de2
lea esp, [esp]
mov eax, dword [esp + 0x48]
test eax, eax
jne 0x448bfa
mov ecx, dword [esp + 0x20]
mov edx, dword [esp + 0x3c]
cmp byte [ecx + edx], 0
je 0x448dc6
mov eax, dword [ebp + 0xc]
mov ecx, dword [ebp + 0x10]
cmp ecx, eax
mov dword [esp + 0x1c], eax
mov dword [esp + 0x10], ecx
jg 0x448d8f
mov esi, dword [ebp + 0x4c]
mov ecx, eax
xor eax, eax
inc ecx
cmp esi, 0xbdf20da3
sete al
test eax, eax
jne 0x448c2f
cmp dword [esp + 0x10], ecx
jge 0x448d6f
xor ebx, ebx
mov edi, dword [ebp + 0x14]
test eax, eax
mov eax, dword [0x4696e8]
sete bl
imul ebx, ebx, 0x64
add ebx, ecx
lea esi, [ebx + ebx*4]
shl esi, 2
test eax, eax
je 0x448c68
mov eax, dword [0x4696f0]
test eax, eax
jle 0x448c68
call dword [sym.imp.KERNEL32.dll_GetCurrentThreadId]
cmp dword [0x4696cc], eax
je 0x448d6f
test edi, edi
jne 0x448cfd
test esi, esi
jle 0x448cf9
mov eax, dword [0x4696e8]
test eax, eax
je 0x448c98
mov eax, dword [0x4696f0]
test eax, eax
jle 0x448c98
call dword [sym.imp.KERNEL32.dll_GetCurrentThreadId]
cmp dword [0x4696cc], eax
je 0x448cf9
push esi
call dword [sym.imp.MSVCR71.dll_malloc]
mov edi, eax
add esp, 4
test edi, edi
mov dword [esp + 0x18], edi
jne 0x448cdf
mov eax, dword [0x4696e8]
test eax, eax
je 0x448ccc
mov eax, dword [0x4696f0]
test eax, eax
jle 0x448ccc
call dword [sym.imp.KERNEL32.dll_GetCurrentThreadId]
cmp dword [0x4696cc], eax
je 0x448cf9
call fcn.00410f50
mov dword [0x4696e8], 1
mov esi, edi
jmp 0x448d3d
mov edi, dword [esp + 0x18]
mov ecx, esi
mov edx, ecx
shr ecx, 2
xor eax, eax
rep stosd dword es:[edi], eax
mov ecx, edx
and ecx, 3
rep stosb byte es:[edi], al
mov edi, dword [esp + 0x18]
mov esi, edi
jmp 0x448d3d
push esi
push edi
call dword [sym.imp.MSVCR71.dll_realloc]
mov esi, eax
add esp, 8
test esi, esi
jne 0x448d41
mov eax, dword [0x4696e8]
test eax, eax
je 0x448d2e
mov eax, dword [0x4696f0]
test eax, eax
jle 0x448d2e
call dword [sym.imp.KERNEL32.dll_GetCurrentThreadId]
cmp dword [0x4696cc], eax
je 0x448d3d
call fcn.00410f50
mov dword [0x4696e8], 1
test esi, esi
je 0x448d6f
mov eax, dword [esp + 0x10]
cmp ebx, eax
mov dword [ebp + 0x10], ebx
mov dword [ebp + 0x14], esi
jle 0x448d6f
mov edx, eax
sub ebx, edx
lea ecx, [ebx + ebx*4]
shl ecx, 2
lea edx, [edx + edx*4]
lea edi, [esi + edx*4]
mov edx, ecx
shr ecx, 2
xor eax, eax
rep stosd dword es:[edi], eax
mov ecx, edx
and ecx, 3
rep stosb byte es:[edi], al
mov eax, dword [0x4696e8]
test eax, eax
je 0x448d8f
mov eax, dword [0x4696f0]
test eax, eax
jle 0x448d8f
call dword [sym.imp.KERNEL32.dll_GetCurrentThreadId]
cmp dword [0x4696cc], eax
je 0x448dc6
mov eax, dword [ebp + 0xc]
mov ecx, dword [ebp + 0x14]
mov edx, dword [esp + 0x28]
inc eax
mov dword [ebp + 0xc], eax
mov eax, dword [esp + 0x1c]
lea eax, [eax + eax*4]
lea eax, [ecx + eax*4]
mov ecx, dword [esp + 0x20]
lea edx, [edx + ecx + 1]
xor ecx, ecx
mov byte [eax], 0x1f
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 + 0x24]
mov edx, dword [esp + 0x20]
mov eax, dword [eax + 0x20]
inc edx
test eax, eax
mov dword [esp + 0x24], eax
mov dword [esp + 0x20], edx
jne 0x448be0
mov eax, dword [ebp + 0xc]
mov ecx, dword [ebp + 0x10]
cmp ecx, eax
mov dword [esp + 0x1c], eax
mov dword [esp + 0x10], ecx
jg 0x448f77
mov esi, dword [ebp + 0x4c]
mov ecx, eax
xor eax, eax
inc ecx
cmp esi, 0xbdf20da3
sete al
test eax, eax
jne 0x448e17
cmp dword [esp + 0x10], ecx
jge 0x448f57
xor ebx, ebx
mov edi, dword [ebp + 0x14]
test eax, eax
mov eax, dword [0x4696e8]
sete bl
imul ebx, ebx, 0x64
add ebx, ecx
lea esi, [ebx + ebx*4]
shl esi, 2
test eax, eax
je 0x448e50
mov eax, dword [0x4696f0]
test eax, eax
jle 0x448e50
call dword [sym.imp.KERNEL32.dll_GetCurrentThreadId]
cmp dword [0x4696cc], eax
je 0x448f57
test edi, edi
jne 0x448ee5
test esi, esi
jle 0x448ee1
mov eax, dword [0x4696e8]
test eax, eax
je 0x448e80
mov eax, dword [0x4696f0]
test eax, eax
jle 0x448e80
call dword [sym.imp.KERNEL32.dll_GetCurrentThreadId]
cmp dword [0x4696cc], eax
je 0x448ee1
push esi
call dword [sym.imp.MSVCR71.dll_malloc]
mov edi, eax
add esp, 4
test edi, edi
mov dword [esp + 0x18], edi
jne 0x448ec7
mov eax, dword [0x4696e8]
test eax, eax
je 0x448eb4
mov eax, dword [0x4696f0]
test eax, eax
jle 0x448eb4
call dword [sym.imp.KERNEL32.dll_GetCurrentThreadId]
cmp dword [0x4696cc], eax
je 0x448ee1
call fcn.00410f50
mov dword [0x4696e8], 1
mov esi, edi
jmp 0x448f25
mov edi, dword [esp + 0x18]
mov ecx, esi
mov edx, ecx
shr ecx, 2
xor eax, eax
rep stosd dword es:[edi], eax
mov ecx, edx
and ecx, 3
rep stosb byte es:[edi], al
mov edi, dword [esp + 0x18]
mov esi, edi
jmp 0x448f25
push esi
push edi
call dword [sym.imp.MSVCR71.dll_realloc]
mov esi, eax
add esp, 8
test esi, esi
jne 0x448f29
mov eax, dword [0x4696e8]
test eax, eax
je 0x448f16
mov eax, dword [0x4696f0]
test eax, eax
jle 0x448f16
call dword [sym.imp.KERNEL32.dll_GetCurrentThreadId]
cmp dword [0x4696cc], eax
je 0x448f25
call fcn.00410f50
mov dword [0x4696e8], 1
test esi, esi
je 0x448f57
mov eax, dword [esp + 0x10]
cmp ebx, eax
mov dword [ebp + 0x10], ebx
mov dword [ebp + 0x14], esi
jle 0x448f57
mov edx, eax
sub ebx, edx
lea ecx, [ebx + ebx*4]
shl ecx, 2
lea edx, [edx + edx*4]
lea edi, [esi + edx*4]
mov edx, ecx
shr ecx, 2
xor eax, eax
rep stosd dword es:[edi], eax
mov ecx, edx
and ecx, 3
rep stosb byte es:[edi], al
mov eax, dword [0x4696e8]
test eax, eax
je 0x448f77
mov eax, dword [0x4696f0]
test eax, eax
jle 0x448f77
call dword [sym.imp.KERNEL32.dll_GetCurrentThreadId]
cmp dword [0x4696cc], eax
je 0x448fa6
mov eax, dword [ebp + 0xc]
mov ecx, dword [ebp + 0x14]
mov edx, dword [esp + 0x28]
inc eax
mov dword [ebp + 0xc], eax
mov eax, dword [esp + 0x1c]
lea eax, [eax + eax*4]
lea eax, [ecx + eax*4]
xor ecx, ecx
mov byte [eax], 0x1f
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 + 0x4c]
push eax
mov eax, dword [esp + 0x44]
push ecx
mov ecx, dword [esp + 0x1c]
push edx
mov edx, dword [esp + 0xb0]
push eax
mov eax, dword [esp + 0xac]
push ecx
push 2
push edx
push 0x64
push eax
call fcn.00449c90
add esp, 0x24
test eax, eax
jne 0x4492a1
mov eax, dword [ebp + 0xc]
mov ecx, dword [ebp + 0x10]
cmp ecx, eax
mov dword [esp + 0x1c], eax
mov dword [esp + 0x10], ecx
jg 0x44917c
mov esi, dword [ebp + 0x4c]
mov ecx, eax
xor eax, eax
inc ecx
cmp esi, 0xbdf20da3
sete al
test eax, eax
jne 0x44901b
cmp dword [esp + 0x10], ecx
jge 0x44915b
xor ebx, ebx
mov edi, dword [ebp + 0x14]
test eax, eax
mov eax, dword [0x4696e8]
sete bl
imul ebx, ebx, 0x64
add ebx, ecx
lea esi, [ebx + ebx*4]
shl esi, 2
test eax, eax
je 0x449054
mov eax, dword [0x4696f0]
test eax, eax
jle 0x449054
call dword [sym.imp.KERNEL32.dll_GetCurrentThreadId]
cmp dword [0x4696cc], eax
je 0x44915b
test edi, edi
jne 0x4490e9
test esi, esi
jle 0x4490e5
mov eax, dword [0x4696e8]
test eax, eax
je 0x449084
mov eax, dword [0x4696f0]
test eax, eax
jle 0x449084
call dword [sym.imp.KERNEL32.dll_GetCurrentThreadId]
cmp dword [0x4696cc], eax
je 0x4490e5
push esi
call dword [sym.imp.MSVCR71.dll_malloc]
mov edi, eax
add esp, 4
test edi, edi
mov dword [esp + 0x18], edi
jne 0x4490cb
mov eax, dword [0x4696e8]
test eax, eax
je 0x4490b8
mov eax, dword [0x4696f0]
test eax, eax
jle 0x4490b8
call dword [sym.imp.KERNEL32.dll_GetCurrentThreadId]
cmp dword [0x4696cc], eax
je 0x4490e5
call fcn.00410f50
mov dword [0x4696e8], 1
mov esi, edi
jmp 0x449129
mov edi, dword [esp + 0x18]
mov ecx, esi
mov edx, ecx
shr ecx, 2
xor eax, eax
rep stosd dword es:[edi], eax
mov ecx, edx
and ecx, 3
rep stosb byte es:[edi], al
mov edi, dword [esp + 0x18]
mov esi, edi
jmp 0x449129
push esi
push edi
call dword [sym.imp.MSVCR71.dll_realloc]
mov esi, eax
add esp, 8
test esi, esi
jne 0x44912d
mov eax, dword [0x4696e8]
test eax, eax
je 0x44911a
mov eax, dword [0x4696f0]
test eax, eax
jle 0x44911a
call dword [sym.imp.KERNEL32.dll_GetCurrentThreadId]
cmp dword [0x4696cc], eax
je 0x449129
call fcn.00410f50
mov dword [0x4696e8], 1
test esi, esi
je 0x44915b
mov eax, dword [esp + 0x10]
cmp ebx, eax
mov dword [ebp + 0x10], ebx
mov dword [ebp + 0x14], esi
jle 0x44915b
mov edx, eax
sub ebx, edx
lea ecx, [ebx + ebx*4]
shl ecx, 2
lea edx, [edx + edx*4]
lea edi, [esi + edx*4]
mov edx, ecx
shr ecx, 2
xor eax, eax
rep stosd dword es:[edi], eax
mov ecx, edx
and ecx, 3
rep stosb byte es:[edi], al
mov eax, dword [0x4696e8]
xor edi, edi
cmp eax, edi
je 0x44917c
cmp dword [0x4696f0], edi
jle 0x44917c
call dword [sym.imp.KERNEL32.dll_GetCurrentThreadId]
cmp dword [0x4696cc], eax
je 0x4491ac
mov eax, dword [ebp + 0xc]
mov ecx, dword [ebp + 0x14]
mov edx, dword [esp + 0x2c]
inc eax
mov dword [ebp + 0xc], eax
mov eax, dword [esp + 0x1c]
lea eax, [eax + eax*4]
lea eax, [ecx + eax*4]
xor edi, edi
mov byte [eax], 0x60
mov dword [eax + 4], edi
mov dword [eax + 8], edx
mov dword [eax + 0xc], edi
mov dword [eax + 0x10], edi
mov byte [ebp + 0x234], 0
mov eax, dword [esp + 0x2c]
cmp eax, edi
jl 0x4491c9
mov edx, dword [ebp + 0xc]
cmp edx, eax
jle 0x4491c9
mov ecx, dword [ebp + 0x14]
cmp ecx, edi
je 0x4491c9
lea eax, [eax + eax*4]
mov dword [ecx + eax*4 + 8], edx
cmp dword [esp + 0x5c], edi
jne 0x449226
mov ecx, dword [esp + 0x14]
mov ebx, dword [ecx + 0x10]
xor edi, edi
test ebx, ebx
je 0x449211
lea esp, [esp]
mov eax, dword [esp + 0x48]
test eax, eax
jne 0x4491f2
mov edx, dword [esp + 0x3c]
cmp byte [edi + edx], 0
je 0x449209
mov eax, dword [esp + 0x28]
push 0
lea ecx, [eax + edi + 1]
push ecx
push 0x1f
mov esi, ebp
call fcn.0041f960
add esp, 0xc
mov ebx, dword [ebx + 0x20]
inc edi
test ebx, ebx
jne 0x4491e0
mov edx, dword [esp + 0x28]
push 0
push edx
push 0x1f
mov esi, ebp
call fcn.0041f960
add esp, 0xc
jmp 0x449245
mov eax, dword [esp + 0x40]
push edi
push eax
push 0x1f
mov esi, ebp
call fcn.0041f960
mov ecx, dword [esp + 0x58]
push edi
push ecx
push 0x1f
call fcn.0041f960
add esp, 0x18
mov edx, dword [esp + 0x58]
mov al, byte [edx + 8]
test al, al
jns 0x4492a1
mov eax, dword [esp + 0x9c]
mov ecx, dword [eax + 0xac]
test ecx, ecx
jne 0x4492a1
mov cl, byte [eax + 0x13]
test cl, cl
jne 0x4492a1
mov eax, dword [esp + 0x68]
push 0
push eax
push 1
mov esi, ebp
call fcn.0041f960
push 0
push 1
push 0x3b
call fcn.0041f960
push 1
mov edi, ebp
call fcn.0041b500
push 0xfffffffffffffffe
push 0
push 0
mov edi, str.rows_updated
mov ebx, ebp
call fcn.0041b580
add esp, 0x28
mov eax, dword [esp + 0x70]
test eax, eax
je 0x4492b5
mov ecx, dword [esp + 0x6c]
mov edx, eax
mov dword [edx + 0xb0], ecx
mov eax, dword [esp + 0x60]
test eax, eax
je 0x4492c7
push eax
call dword [sym.imp.MSVCR71.dll_free]
add esp, 4
mov eax, dword [esp + 0x34]
push eax
call dword [sym.imp.MSVCR71.dll_free]
add esp, 4
pop ebx
pop ebp
mov ecx, dword [esp + 0x98]
push ecx
call fcn.00417bb0
mov edi, dword [esp + 0xa0]
call fcn.004176f0
mov edx, dword [esp + 0xa4]
push edx
call fcn.0041b910
add esp, 8
pop edi
pop esi
add esp, 0x88
ret