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

Disassembly:
sub esp, 0x90
xor eax, eax
mov dword [esp + 0x18], 0
push ebx
mov ebx, dword [esp + 0x98]
xorps xmm0, xmm0
push edi
mov dword [esp + 0x6c], eax
mov dword [esp + 0x50], eax
mov edi, dword [ebx]
mov dword [esp + 0x38], 0xffffffff
mov dword [esp + 0x2c], eax
mov dword [esp + 0x3c], eax
mov dword [esp + 0x34], eax
mov dword [esp + 0x40], eax
mov dword [esp + 0x44], eax
mov dword [esp + 0x28], eax
mov dword [esp + 0x68], eax
movlpd qword [esp + 0x60], xmm0
mov dword [esp + 0x24], edi
cmp dword [ebx + 0x40], eax
jne 0x452507
cmp byte [edi + 0x41], al
jne 0x452507
push esi
push dword [esp + 0xa4]
push ebx
call fcn.0046fd00
mov esi, eax
add esp, 8
mov dword [esp + 0x58], esi
test esi, esi
je 0x452506
push ebp
push 0
push 0
push 0x6d
push esi
push ebx
call fcn.00470da0
mov ebp, eax
mov eax, dword [esi + 0xc]
push esi
push ebx
mov dword [esp + 0x70], ebp
mov dword [esp + 0x6c], eax
call fcn.00481200
add esp, 0x1c
test eax, eax
jne 0x452505
test ebp, ebp
setne al
push eax
push esi
push ebx
call fcn.00460400
add esp, 0xc
test eax, eax
jne 0x452505
mov edx, dword [esi + 0x40]
mov ebp, 0xfff0bdc0
mov dword [esp + 0x24], ebp
test edx, edx
je 0x451c20
mov ecx, dword [edi + 0x14]
xor ebp, ebp
mov dword [esp + 0x24], ebp
test ecx, ecx
jle 0x451c20
mov eax, dword [edi + 0x10]
add eax, 0xc
nop dword [eax]
cmp dword [eax], edx
je 0x451c1c
inc ebp
add eax, 0x10
cmp ebp, ecx
jl 0x451c10
mov dword [esp + 0x24], ebp
mov eax, dword [edi + 0x10]
mov ecx, ebp
add ecx, ecx
push dword [eax + ecx*8]
push 0
push dword [esi]
push 9
push ebx
call fcn.00449bb0
add esp, 0x14
mov dword [esp + 0x1c], eax
cmp eax, 1
je 0x452505
mov ecx, dword [esp + 0xa8]
xor edx, edx
mov eax, dword [ebx + 0x44]
mov dword [esp + 0x14], eax
mov dword [esp + 0x20], edx
mov dword [ecx + 0x38], eax
inc dword [ebx + 0x44]
mov eax, dword [esi + 8]
mov ecx, dword [ebx + 0x44]
test eax, eax
je 0x451c80
nop word [eax + eax]
inc ecx
inc edx
mov dword [ebx + 0x44], ecx
mov eax, dword [eax + 0x14]
test eax, eax
jne 0x451c70
mov dword [esp + 0x20], edx
cmp dword [esp + 0x50], 0
je 0x451c9f
mov eax, dword [ebx + 0x1ec]
mov dword [esp + 0x7c], eax
mov eax, dword [esi]
mov dword [esp + 0x78], ebx
mov dword [ebx + 0x1ec], eax
jmp 0x451caf
mov eax, dword [esp + 0x6c]
mov dword [esp + 0x78], eax
mov eax, dword [esp + 0x68]
mov dword [esp + 0x7c], eax
push ebx
call fcn.0045d470
mov edi, eax
add esp, 4
test edi, edi
je 0x4524ef
cmp byte [ebx + 0x12], 0
jne 0x451ccc
or dword [edi + 0x58], 4
push ebp
push 1
push ebx
call fcn.0044abf0
add esp, 0xc
cmp dword [esp + 0x50], 0
je 0x451d06
push dword [esp + 0x14]
push dword [esp + 0xb0]
push esi
push ebx
call fcn.00462120
mov ecx, dword [esp + 0x24]
add esp, 0x10
mov eax, ecx
mov dword [esp + 0x28], ecx
mov dword [esp + 0x74], eax
mov dword [esp + 0x58], eax
mov eax, dword [esp + 0xa8]
xorps xmm0, xmm0
push dword [esp + 0xac]
mov dword [esp + 0x88], eax
lea eax, [esp + 0x84]
push eax
movlpd qword [esp + 0x90], xmm0
movlpd qword [esp + 0x98], xmm0
movlpd qword [esp + 0xa0], xmm0
mov dword [esp + 0x88], ebx
call fcn.0046aa70
add esp, 8
test eax, eax
jne 0x4524ef
mov eax, dword [esp + 0x2c]
test byte [eax + 0x18], 0x80
je 0x451dc2
inc dword [ebx + 0x48]
mov eax, dword [ebx + 0x48]
mov ecx, dword [edi + 0x20]
mov dword [esp + 0x40], eax
mov eax, dword [edi + 0x18]
mov dword [esp + 0x38], ecx
cmp dword [eax + 0x54], ecx
jg 0x451d8e
push 1
push edi
call fcn.00436000
add esp, 8
test eax, eax
jne 0x451dc2
mov ecx, dword [esp + 0x38]
mov eax, dword [edi + 4]
lea ecx, [ecx + ecx*4]
inc dword [edi + 0x20]
mov edx, dword [esp + 0x40]
mov word [eax + ecx*4], 0x19
mov byte [eax + ecx*4 + 3], 0
mov dword [eax + ecx*4 + 4], 0
mov dword [eax + ecx*4 + 8], edx
mov dword [eax + ecx*4 + 0xc], 0
mov dword [eax + ecx*4 + 0x10], 0
cmp dword [esp + 0x1c], 0
jne 0x451ead
cmp dword [esp + 0xac], 0
jne 0x451ead
cmp dword [esp + 0x54], 0
jne 0x451ead
test byte [esi + 0x2a], 0x10
jne 0x451ead
push 0
push 0
push esi
push ebx
call fcn.0045a6e0
add esp, 0x10
test eax, eax
jne 0x451ead
push dword [esi]
push 1
push dword [esi + 0x1c]
push ebp
push ebx
call fcn.00470990
add esp, 0x14
test byte [esi + 0x2a], 0x20
jne 0x451e34
push 0xfffffffffffffffe
push dword [esi]
push dword [esp + 0x48]
push ebp
push dword [esi + 0x1c]
push 0x76
push edi
call fcn.004755d0
add esp, 0x1c
mov esi, dword [esi + 8]
test esi, esi
je 0x452454
mov ebx, dword [esp + 0x24]
mov eax, dword [esi + 0x28]
mov ebp, dword [edi + 0x20]
mov dword [esp + 0x54], eax
mov eax, dword [edi + 0x18]
cmp dword [eax + 0x54], ebp
jg 0x451e64
push 1
push edi
call fcn.00436000
add esp, 8
test eax, eax
jne 0x451e9a
inc dword [edi + 0x20]
lea ecx, [ebp*4]
mov eax, dword [edi + 4]
add ecx, ebp
mov edx, dword [esp + 0x54]
mov word [eax + ecx*4], 0x76
mov byte [eax + ecx*4 + 3], 0
mov dword [eax + ecx*4 + 4], edx
mov dword [eax + ecx*4 + 8], ebx
mov dword [eax + ecx*4 + 0xc], 0
mov dword [eax + ecx*4 + 0x10], 0
mov esi, dword [esi + 0x14]
test esi, esi
jne 0x451e43
mov ebx, dword [esp + 0xa4]
jmp 0x452454
test byte [esi + 0x2a], 0x20
jne 0x451f27
inc dword [ebx + 0x48]
mov eax, dword [ebx + 0x48]
mov ebp, dword [edi + 0x20]
mov dword [esp + 0x48], eax
mov eax, dword [edi + 0x18]
mov dword [esp + 0x1c], 0
mov dword [esp + 0x38], 1
cmp dword [eax + 0x54], ebp
jg 0x451eeb
push 1
push edi
call fcn.00436000
add esp, 8
test eax, eax
jne 0x451f75
inc dword [edi + 0x20]
lea ecx, [ebp*4]
mov eax, dword [edi + 4]
add ecx, ebp
mov edx, dword [esp + 0x48]
mov word [eax + ecx*4], 0x1c
mov byte [eax + ecx*4 + 3], 0
mov dword [eax + ecx*4 + 4], 0
mov dword [eax + ecx*4 + 8], edx
mov dword [eax + ecx*4 + 0xc], 0
mov dword [eax + ecx*4 + 0x10], 0
jmp 0x451f75
push esi
call fcn.00469da0
mov ebp, eax
mov eax, dword [ebx + 0x48]
mov dword [esp + 0x20], ebp
movzx ecx, word [ebp + 0x2e]
lea edx, [eax + 1]
mov dword [esp + 0x3c], ecx
movsx ecx, cx
push ecx
mov dword [esp + 0x4c], edx
add eax, ecx
mov edx, dword [ebx + 0x44]
push edx
mov dword [ebx + 0x48], eax
push 0x39
lea eax, [edx + 1]
mov dword [esp + 0x4c], edx
push edi
mov dword [ebx + 0x44], eax
call fcn.00475540
push ebp
push ebx
mov dword [esp + 0x8c], eax
call fcn.00480a60
add esp, 0x1c
mov ebp, dword [esp + 0x14]
lea eax, [ebp + 1]
push eax
push 0xc
push 0
push 0
push dword [esp + 0xbc]
push dword [esp + 0xbc]
push ebx
call fcn.00482f90
add esp, 0x1c
mov dword [esp + 0x24], eax
test eax, eax
je 0x4524ef
mov ecx, dword [eax + 0x3c]
mov dword [esp + 0x60], ecx
mov ecx, dword [eax + 0x40]
mov al, byte [eax + 0x26]
mov byte [esp + 0x13], al
mov byte [esp + 0x68], al
mov eax, dword [esp + 0x2c]
mov dword [esp + 0x64], ecx
test byte [eax + 0x18], 0x80
je 0x452021
mov eax, dword [edi + 0x18]
mov ebp, dword [edi + 0x20]
cmp dword [eax + 0x54], ebp
jg 0x451fe3
push 1
push edi
call fcn.00436000
add esp, 8
test eax, eax
jne 0x45201d
inc dword [edi + 0x20]
lea ecx, [ebp*4]
mov eax, dword [edi + 4]
add ecx, ebp
mov edx, dword [esp + 0x40]
mov word [eax + ecx*4], 0x25
mov byte [eax + ecx*4 + 3], 0
mov dword [eax + ecx*4 + 4], edx
mov dword [eax + ecx*4 + 8], 1
mov dword [eax + ecx*4 + 0xc], 0
mov dword [eax + ecx*4 + 0x10], 0
mov ebp, dword [esp + 0x14]
mov ecx, dword [esp + 0x1c]
test ecx, ecx
je 0x452078
mov edx, dword [esp + 0x38]
xor ebp, ebp
movsx eax, dx
mov dword [esp + 0x18], eax
xor eax, eax
cmp ax, dx
jge 0x45206e
mov ebx, dword [esp + 0x18]
mov eax, dword [esp + 0x44]
add eax, ebp
push eax
mov eax, dword [ecx + 4]
movsx eax, word [eax + ebp*2]
push eax
push dword [esp + 0x1c]
push esi
push edi
call fcn.00454f60
mov ecx, dword [esp + 0x30]
inc ebp
add esp, 0x14
cmp ebp, ebx
jl 0x452041
mov ebx, dword [esp + 0xa4]
mov ebp, dword [esp + 0x44]
mov dword [esp + 0x18], ebp
jmp 0x45209a
mov eax, dword [ebx + 0x48]
push 0
inc eax
push eax
push ebp
push 0xffffffffffffffff
push esi
push ebx
call fcn.00454e20
mov ebp, eax
add esp, 0x18
mov dword [esp + 0x18], ebp
cmp ebp, dword [ebx + 0x48]
jle 0x45209a
mov dword [ebx + 0x48], ebp
cmp byte [esp + 0x13], 0
je 0x4521c7
mov eax, dword [esp + 0x20]
add eax, 2
cdq
push edx
push eax
push dword [esp + 0x34]
call fcn.00451570
mov ecx, eax
add esp, 0xc
mov dword [esp + 0x34], ecx
test ecx, ecx
jne 0x4520d6
push dword [esp + 0x24]
call fcn.00483960
add esp, 4
jmp 0x4524ef
mov eax, dword [esp + 0x20]
inc eax
push eax
push 1
push ecx
call fcn.004c20c0
mov eax, dword [esp + 0x2c]
add esp, 0xc
mov edx, dword [esp + 0x34]
mov ecx, dword [esp + 0x60]
mov byte [eax + edx + 1], 0
mov eax, dword [esp + 0x14]
test ecx, ecx
js 0x452106
sub ecx, eax
mov byte [ecx + edx], 0
mov ecx, dword [esp + 0x64]
test ecx, ecx
js 0x452114
sub ecx, eax
mov byte [ecx + edx], 0
mov eax, dword [esp + 0x70]
test eax, eax
je 0x452126
push eax
push edi
call fcn.00475a20
add esp, 8
push 0x10
push edi
call fcn.00475460
push dword [esp + 0x2c]
mov dword [esp + 0x6c], eax
call fcn.00483960
push edi
call fcn.0047e730
mov ecx, dword [edi + 0x18]
add esp, 0x10
mov dword [esp + 0x4c], eax
mov eax, dword [edi + 0x20]
mov dword [esp + 0x64], eax
cmp dword [ecx + 0x54], eax
jg 0x45216a
push 1
push edi
call fcn.00436000
add esp, 8
test eax, eax
jne 0x45219e
mov eax, dword [esp + 0x64]
inc dword [edi + 0x20]
lea ecx, [eax + eax*4]
mov eax, dword [edi + 4]
mov edx, dword [esp + 0x4c]
mov word [eax + ecx*4], 0x10
mov byte [eax + ecx*4 + 3], 0
mov dword [eax + ecx*4 + 4], 0
mov dword [eax + ecx*4 + 8], edx
mov dword [eax + ecx*4 + 0xc], 0
mov dword [eax + ecx*4 + 0x10], 0
push dword [esp + 0x60]
push edi
call fcn.0047e300
mov ecx, dword [esp + 0x40]
add esp, 8
mov edx, dword [esp + 0x34]
movzx eax, cx
mov dword [esp + 0x34], edx
mov dword [esp + 0x18], ebp
mov dword [esp + 0x20], eax
jmp 0x45224a
mov eax, dword [esp + 0x1c]
test eax, eax
je 0x452224
mov ecx, dword [esp + 0x38]
inc dword [ebx + 0x48]
mov ebp, dword [ebx + 0x48]
movsx esi, cx
push esi
push eax
push edi
mov dword [esp + 0x24], ebp
mov dword [esp + 0x2c], 0
call fcn.0045e160
add esp, 8
push eax
push ebp
push esi
push dword [esp + 0x54]
push 0x31
push edi
call fcn.004755d0
push ebp
push dword [esp + 0x5c]
push 0x6e
push edi
call fcn.00475540
push dword [esp + 0x50]
call fcn.00483960
mov esi, dword [esp + 0x8c]
add esp, 0x30
jmp 0x452248
push ebp
push dword [esp + 0x4c]
mov dword [esp + 0x28], 1
push 0x80
push edi
call fcn.00475540
push dword [esp + 0x34]
call fcn.00483960
add esp, 0x14
xor edx, edx
cmp dword [esp + 0x50], 0
jne 0x452272
lea eax, [esp + 0x58]
push eax
lea eax, [esp + 0x2c]
push eax
push edx
push dword [esp + 0x20]
push 0x37
push esi
push ebx
call fcn.004628f0
mov ebp, dword [esp + 0x74]
add esp, 0x1c
jmp 0x452276
mov ebp, dword [esp + 0x74]
cmp byte [esp + 0x13], 0
je 0x4522ab
mov eax, dword [esp + 0x34]
sub eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x28]
cmp byte [eax + ecx], 0
je 0x4522f7
mov eax, dword [esp + 0x20]
cwde
push eax
push dword [esp + 0x1c]
push dword [esp + 0x54]
push ecx
push 0x44
push edi
call fcn.00475610
add esp, 0x18
jmp 0x4522f3
cmp dword [esp + 0x1c], 0
je 0x4522d7
push dword [esp + 0x3c]
push 0x6c
push edi
call fcn.004754d0
push dword [esp + 0x24]
mov dword [esp + 0x40], eax
push dword [esp + 0x4c]
push 0x65
push edi
call fcn.00475540
add esp, 0x1c
jmp 0x4522f3
push dword [esp + 0x18]
push 0
push dword [esp + 0x50]
push 0x81
push edi
call fcn.00475560
add esp, 0x14
mov dword [esp + 0x30], eax
mov ecx, dword [esp + 0x28]
test byte [esi + 0x2a], 0x10
je 0x452348
push esi
push dword [esp + 0x30]
call fcn.0045d230
push dword [esp + 0x64]
mov esi, eax
push ebx
call fcn.004819d0
push 0xfffffffffffffff6
push esi
push dword [esp + 0x30]
push 1
push 0
push 0xf
push edi
call fcn.004755d0
push 2
push edi
call fcn.00475a00
mov eax, dword [ebx + 0x198]
add esp, 0x34
mov esi, dword [esp + 0x5c]
test eax, eax
mov ecx, ebx
cmovne ecx, eax
mov byte [ecx + 0x15], 1
jmp 0x452371
push dword [esp + 0x68]
cmp byte [ebx + 0x12], 0
push 0xa
sete al
movzx eax, al
push eax
push dword [esp + 0x2c]
push dword [esp + 0x28]
push ebp
push ecx
push dword [esp + 0x70]
push esi
push ebx
call fcn.0045c0f0
add esp, 0x28
cmp byte [esp + 0x13], 0
je 0x452387
push dword [esp + 0x4c]
push edi
call fcn.004807a0
jmp 0x45240f
cmp dword [esp + 0x1c], 0
je 0x4523af
mov eax, dword [esp + 0x30]
inc eax
push eax
push dword [esp + 0x40]
push 9
push edi
call fcn.00475540
push dword [esp + 0x40]
push edi
call fcn.0047e300
add esp, 0x18
jmp 0x452412
mov eax, dword [edi + 0x18]
mov ecx, dword [edi + 0x20]
mov dword [esp + 0x68], ecx
cmp dword [eax + 0x54], ecx
jg 0x4523d1
push 1
push edi
call fcn.00436000
add esp, 8
test eax, eax
jne 0x452405
mov ecx, dword [esp + 0x68]
mov eax, dword [edi + 4]
lea ecx, [ecx + ecx*4]
inc dword [edi + 0x20]
mov edx, dword [esp + 0x30]
mov word [eax + ecx*4], 0x10
mov byte [eax + ecx*4 + 3], 0
mov dword [eax + ecx*4 + 4], 0
mov dword [eax + ecx*4 + 8], edx
mov dword [eax + ecx*4 + 0xc], 0
mov dword [eax + ecx*4 + 0x10], 0
push dword [esp + 0x30]
push edi
call fcn.0047e300
add esp, 8
cmp dword [esp + 0x50], 0
jne 0x452454
test byte [esi + 0x2a], 0x10
jne 0x452454
cmp dword [esp + 0x1c], 0
jne 0x452435
push dword [esp + 0x28]
push 0x3d
push edi
call fcn.004754d0
add esp, 0xc
mov esi, dword [esi + 8]
test esi, esi
je 0x452454
nop dword [eax]
push ebp
push 0x3d
push edi
call fcn.004754d0
mov esi, dword [esi + 0x14]
add esp, 0xc
inc ebp
test esi, esi
jne 0x452440
cmp byte [ebx + 0x12], 0
jne 0x45246c
cmp dword [ebx + 0x19c], 0
jne 0x45246c
push ebx
call fcn.0044a300
add esp, 4
mov eax, dword [esp + 0x2c]
test byte [eax + 0x18], 0x80
je 0x4524ef
cmp byte [ebx + 0x12], 0
jne 0x4524ef
cmp dword [ebx + 0x19c], 0
jne 0x4524ef
mov eax, dword [edi + 0x18]
mov esi, dword [edi + 0x20]
cmp dword [eax + 0x54], esi
jg 0x45249f
push 1
push edi
call fcn.00436000
add esp, 8
test eax, eax
jne 0x4524d3
mov eax, dword [edi + 4]
lea ecx, [esi + esi*4]
inc dword [edi + 0x20]
mov edx, dword [esp + 0x40]
mov word [eax + ecx*4], 0x23
mov byte [eax + ecx*4 + 3], 0
mov dword [eax + ecx*4 + 4], edx
mov dword [eax + ecx*4 + 8], 1
mov dword [eax + ecx*4 + 0xc], 0
mov dword [eax + ecx*4 + 0x10], 0
push 1
push edi
call fcn.004809f0
push 0
push str.rows_deleted
push 0
push 0
push edi
call fcn.004809b0
add esp, 0x1c
mov eax, dword [esp + 0x78]
mov edi, dword [esp + 0x2c]
test eax, eax
je 0x452505
mov ecx, dword [esp + 0x7c]
mov dword [eax + 0x1ec], ecx
pop ebp
pop esi
push dword [esp + 0xa0]
push edi
call fcn.0046f0f0
push dword [esp + 0xac]
push edi
call fcn.00456d20
push dword [esp + 0x3c]
push edi
call fcn.004514c0
add esp, 0x18
pop edi
pop ebx
add esp, 0x90
ret