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

Disassembly:
sub esp, 0x88
xor eax, eax
mov dword [esp + 0x18], 0
push ebx
mov ebx, dword [esp + 0x90]
push edi
mov dword [esp + 0x4c], eax
mov dword [esp + 0x54], 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 + 0x60], eax
mov dword [esp + 0x68], eax
mov dword [esp + 0x64], eax
mov dword [esp + 0x24], edi
cmp dword [ebx + 0x40], eax
jne 0x45234e
cmp byte [edi + 0x41], al
jne 0x45234e
push ebp
push dword [esp + 0x9c]
push ebx
call fcn.0046fb50
mov ebp, eax
add esp, 8
test ebp, ebp
je 0x45234d
push esi
push 0
push 0
push 0x6d
push ebp
push ebx
call fcn.00470bf0
mov esi, eax
mov eax, dword [ebp + 0xc]
push ebp
push ebx
mov dword [esp + 0x74], esi
mov dword [esp + 0x6c], eax
call fcn.00481250
add esp, 0x1c
test eax, eax
jne 0x45234c
test esi, esi
setne al
push eax
push ebp
push ebx
call fcn.00460270
add esp, 0xc
test eax, eax
jne 0x45234c
mov edx, dword [ebp + 0x40]
mov esi, 0xfff0bdc0
mov dword [esp + 0x24], esi
test edx, edx
je 0x451a68
mov ecx, dword [edi + 0x14]
xor esi, esi
mov dword [esp + 0x24], esi
test ecx, ecx
jle 0x451a68
mov eax, dword [edi + 0x10]
add eax, 0xc
cmp dword [eax], edx
je 0x451a64
inc esi
add eax, 0x10
cmp esi, ecx
jl 0x451a58
mov dword [esp + 0x24], esi
mov eax, dword [edi + 0x10]
mov ecx, esi
add ecx, ecx
push dword [eax + ecx*8]
push 0
push dword [ebp]
push 9
push ebx
call fcn.00449a30
add esp, 0x14
mov dword [esp + 0x1c], eax
cmp eax, 1
je 0x45234c
mov ecx, dword [esp + 0xa0]
xor edx, edx
mov eax, dword [ebx + 0x44]
mov dword [esp + 0x18], eax
mov dword [esp + 0x20], edx
mov dword [ecx + 0x38], eax
inc dword [ebx + 0x44]
mov eax, dword [ebp + 8]
mov ecx, dword [ebx + 0x44]
test eax, eax
je 0x451ac3
inc ecx
inc edx
mov dword [ebx + 0x44], ecx
mov eax, dword [eax + 0x14]
test eax, eax
jne 0x451ab3
mov dword [esp + 0x20], edx
cmp dword [esp + 0x50], 0
je 0x451ae1
mov eax, dword [ebx + 0x1ec]
mov dword [esp + 0x70], eax
mov eax, dword [ebp]
mov dword [esp + 0x6c], ebx
mov dword [ebx + 0x1ec], eax
push ebx
call fcn.0045d2c0
mov edi, eax
add esp, 4
test edi, edi
je 0x452336
cmp byte [ebx + 0x12], 0
jne 0x451afe
or dword [edi + 0x58], 4
push esi
push 1
push ebx
call fcn.0044aa70
add esp, 0xc
cmp dword [esp + 0x50], 0
je 0x451b38
push dword [esp + 0x18]
push dword [esp + 0xa8]
push ebp
push ebx
call fcn.00461f90
mov ecx, dword [esp + 0x28]
add esp, 0x10
mov eax, ecx
mov dword [esp + 0x28], ecx
mov dword [esp + 0x54], eax
mov dword [esp + 0x5c], eax
mov eax, dword [esp + 0xa0]
push dword [esp + 0xa4]
mov dword [esp + 0x80], eax
lea eax, [esp + 0x7c]
push eax
mov dword [esp + 0x88], 0
mov dword [esp + 0x8c], 0
mov dword [esp + 0x90], 0
mov dword [esp + 0x94], 0
mov dword [esp + 0x98], 0
mov dword [esp + 0x9c], 0
mov dword [esp + 0x80], ebx
call fcn.0046a860
add esp, 8
test eax, eax
jne 0x452336
mov eax, dword [esp + 0x2c]
test byte [eax + 0x18], 0x80
je 0x451c15
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 0x451be1
push 1
push edi
call fcn.00435e50
add esp, 8
test eax, eax
jne 0x451c15
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 0x451d0a
cmp dword [esp + 0xa4], 0
jne 0x451d0a
cmp dword [esp + 0x58], 0
jne 0x451d0a
test byte [ebp + 0x2a], 0x10
jne 0x451d0a
push 0
push 0
push ebp
push ebx
call fcn.0045a520
add esp, 0x10
test eax, eax
jne 0x451d0a
push dword [ebp]
push 1
push dword [ebp + 0x1c]
push esi
push ebx
call fcn.004707e0
add esp, 0x14
test byte [ebp + 0x2a], 0x20
jne 0x451c89
push 0xfffffffffffffffe
push dword [ebp]
push dword [esp + 0x48]
push esi
push dword [ebp + 0x1c]
push 0x76
push edi
call fcn.00475350
add esp, 0x1c
mov esi, dword [ebp + 8]
test esi, esi
je 0x45229b
mov ebx, dword [esp + 0x24]
jmp 0x451ca0
mov eax, dword [esi + 0x28]
mov ebp, dword [edi + 0x20]
mov dword [esp + 0x58], eax
mov eax, dword [edi + 0x18]
cmp dword [eax + 0x54], ebp
jg 0x451cc1
push 1
push edi
call fcn.00435e50
add esp, 8
test eax, eax
jne 0x451cf7
inc dword [edi + 0x20]
lea ecx, [ebp*4]
mov eax, dword [edi + 4]
add ecx, ebp
mov edx, dword [esp + 0x58]
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 0x451ca0
mov ebx, dword [esp + 0x9c]
jmp 0x45229b
test byte [ebp + 0x2a], 0x20
jne 0x451d7e
inc dword [ebx + 0x48]
mov eax, dword [ebx + 0x48]
mov esi, 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], esi
jg 0x451d48
push 1
push edi
call fcn.00435e50
add esp, 8
test eax, eax
jne 0x451dcc
mov eax, dword [edi + 4]
lea ecx, [esi + esi*4]
inc dword [edi + 0x20]
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 0x451dcc
push ebp
call fcn.00469b90
mov esi, eax
mov eax, dword [ebx + 0x48]
mov dword [esp + 0x20], esi
movzx ecx, word [esi + 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.004752c0
push esi
push ebx
mov dword [esp + 0x84], eax
call fcn.00480ab0
add esp, 0x1c
mov esi, dword [esp + 0x18]
lea eax, [esi + 1]
push eax
push 0xc
push 0
push 0
push dword [esp + 0xb4]
push dword [esp + 0xb4]
push ebx
call fcn.00482fe0
add esp, 0x1c
mov dword [esp + 0x24], eax
test eax, eax
je 0x452336
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 + 0x74], al
mov eax, dword [esp + 0x2c]
mov dword [esp + 0x64], ecx
test byte [eax + 0x18], 0x80
je 0x451e72
mov eax, dword [edi + 0x18]
mov esi, dword [edi + 0x20]
cmp dword [eax + 0x54], esi
jg 0x451e3a
push 1
push edi
call fcn.00435e50
add esp, 8
test eax, eax
jne 0x451e6e
mov eax, dword [edi + 4]
lea ecx, [esi + esi*4]
inc dword [edi + 0x20]
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 esi, dword [esp + 0x18]
mov ecx, dword [esp + 0x1c]
test ecx, ecx
je 0x451ec9
mov edx, dword [esp + 0x38]
xor esi, esi
movsx eax, dx
mov dword [esp + 0x14], eax
xor eax, eax
cmp ax, dx
jge 0x451ebf
mov ebx, dword [esp + 0x14]
mov eax, dword [esp + 0x44]
add eax, esi
push eax
mov eax, dword [ecx + 4]
movsx eax, word [eax + esi*2]
push eax
push dword [esp + 0x20]
push ebp
push edi
call fcn.00454dc0
mov ecx, dword [esp + 0x30]
inc esi
add esp, 0x14
cmp esi, ebx
jl 0x451e92
mov ebx, dword [esp + 0x9c]
mov esi, dword [esp + 0x44]
mov dword [esp + 0x14], esi
jmp 0x451eeb
mov eax, dword [ebx + 0x48]
push 0
inc eax
push eax
push esi
push 0xffffffffffffffff
push ebp
push ebx
call fcn.00454c80
mov esi, eax
add esp, 0x18
mov dword [esp + 0x14], esi
cmp esi, dword [ebx + 0x48]
jle 0x451eeb
mov dword [ebx + 0x48], esi
cmp byte [esp + 0x13], 0
je 0x452018
mov eax, dword [esp + 0x20]
add eax, 2
cdq
push edx
push eax
push dword [esp + 0x34]
call fcn.004513e0
mov ecx, eax
add esp, 0xc
mov dword [esp + 0x34], ecx
test ecx, ecx
jne 0x451f27
push dword [esp + 0x24]
call fcn.004839a0
add esp, 4
jmp 0x452336
mov eax, dword [esp + 0x20]
inc eax
push eax
push 1
push ecx
call fcn.004c2200
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 + 0x18]
test ecx, ecx
js 0x451f57
sub ecx, eax
mov byte [ecx + edx], 0
mov ecx, dword [esp + 0x64]
test ecx, ecx
js 0x451f65
sub ecx, eax
mov byte [ecx + edx], 0
mov eax, dword [esp + 0x68]
test eax, eax
je 0x451f77
push eax
push edi
call fcn.004757a0
add esp, 8
push 0x10
push edi
call fcn.004751e0
push dword [esp + 0x2c]
mov dword [esp + 0x6c], eax
call fcn.004839a0
push edi
call fcn.0047e6d0
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 0x451fbb
push 1
push edi
call fcn.00435e50
add esp, 8
test eax, eax
jne 0x451fef
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.0047e2a0
mov ecx, dword [esp + 0x40]
add esp, 8
mov edx, dword [esp + 0x34]
movzx eax, cx
mov dword [esp + 0x34], edx
mov dword [esp + 0x14], esi
mov dword [esp + 0x20], eax
jmp 0x45209a
mov ecx, dword [esp + 0x1c]
test ecx, ecx
je 0x452074
inc dword [ebx + 0x48]
mov eax, dword [ebx + 0x48]
mov dword [esp + 0x14], eax
mov eax, dword [esp + 0x38]
movsx esi, ax
push esi
push ecx
push edi
mov dword [esp + 0x2c], 0
call fcn.0045dfb0
add esp, 8
push eax
push dword [esp + 0x1c]
push esi
push dword [esp + 0x54]
push 0x31
push edi
call fcn.00475350
push dword [esp + 0x30]
push dword [esp + 0x5c]
push 0x6e
push edi
call fcn.004752c0
push dword [esp + 0x50]
call fcn.004839a0
add esp, 0x30
jmp 0x452098
push esi
push dword [esp + 0x4c]
mov dword [esp + 0x28], 1
push 0x80
push edi
call fcn.004752c0
push dword [esp + 0x34]
call fcn.004839a0
add esp, 0x14
xor edx, edx
cmp dword [esp + 0x50], 0
jne 0x4520c6
lea eax, [esp + 0x5c]
push eax
lea eax, [esp + 0x2c]
push eax
push edx
push dword [esp + 0x24]
push 0x37
push ebp
push ebx
call fcn.004626e0
mov esi, dword [esp + 0x78]
add esp, 0x1c
mov dword [esp + 0x54], esi
jmp 0x4520ca
mov esi, dword [esp + 0x54]
cmp byte [esp + 0x13], 0
je 0x4520ff
mov eax, dword [esp + 0x34]
sub eax, dword [esp + 0x18]
mov ecx, dword [esp + 0x28]
cmp byte [eax + ecx], 0
je 0x45214b
mov eax, dword [esp + 0x20]
cwde
push eax
push dword [esp + 0x18]
push dword [esp + 0x54]
push ecx
push 0x44
push edi
call fcn.00475390
add esp, 0x18
jmp 0x452147
cmp dword [esp + 0x1c], 0
je 0x45212b
push dword [esp + 0x3c]
push 0x6c
push edi
call fcn.00475250
push dword [esp + 0x20]
mov dword [esp + 0x40], eax
push dword [esp + 0x4c]
push 0x65
push edi
call fcn.004752c0
add esp, 0x1c
jmp 0x452147
push dword [esp + 0x14]
push 0
push dword [esp + 0x50]
push 0x81
push edi
call fcn.004752e0
add esp, 0x14
mov dword [esp + 0x30], eax
mov ecx, dword [esp + 0x28]
test byte [ebp + 0x2a], 0x10
je 0x452195
push ebp
push dword [esp + 0x30]
call fcn.0045d080
push ebp
push ebx
mov esi, eax
call fcn.00481a20
push 0xfffffffffffffff6
push esi
push dword [esp + 0x2c]
push 1
push 0
push 0xf
push edi
call fcn.00475350
push 2
push edi
call fcn.00475780
mov eax, dword [ebx + 0x198]
add esp, 0x34
test eax, eax
mov ecx, ebx
cmovne ecx, eax
mov byte [ecx + 0x15], 1
jmp 0x4521be
push dword [esp + 0x74]
cmp byte [ebx + 0x12], 0
push 0xa
sete al
movzx eax, al
push eax
push dword [esp + 0x2c]
push dword [esp + 0x24]
push esi
push ecx
push dword [esp + 0x74]
push ebp
push ebx
call fcn.0045bf30
add esp, 0x28
cmp byte [esp + 0x13], 0
je 0x4521d4
push dword [esp + 0x4c]
push edi
call fcn.004807f0
jmp 0x452255
mov esi, dword [esp + 0x1c]
test esi, esi
je 0x4521fd
mov eax, dword [esp + 0x30]
inc eax
push eax
push dword [esp + 0x40]
push 9
push edi
call fcn.004752c0
push dword [esp + 0x40]
push edi
call fcn.0047e2a0
add esp, 0x18
jmp 0x45225c
mov eax, dword [edi + 0x18]
mov esi, dword [edi + 0x20]
cmp dword [eax + 0x54], esi
jg 0x452217
push 1
push edi
call fcn.00435e50
add esp, 8
test eax, eax
jne 0x45224b
mov eax, dword [edi + 4]
lea ecx, [esi + esi*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.0047e2a0
mov esi, dword [esp + 0x24]
add esp, 8
cmp dword [esp + 0x50], 0
jne 0x45229b
test byte [ebp + 0x2a], 0x10
jne 0x45229b
test esi, esi
jne 0x45227c
push dword [esp + 0x28]
push 0x3d
push edi
call fcn.00475250
add esp, 0xc
mov esi, dword [ebp + 8]
test esi, esi
je 0x45229b
mov ebp, dword [esp + 0x54]
push ebp
push 0x3d
push edi
call fcn.00475250
mov esi, dword [esi + 0x14]
add esp, 0xc
inc ebp
test esi, esi
jne 0x452287
cmp byte [ebx + 0x12], 0
jne 0x4522b3
cmp dword [ebx + 0x19c], 0
jne 0x4522b3
push ebx
call fcn.0044a180
add esp, 4
mov eax, dword [esp + 0x2c]
test byte [eax + 0x18], 0x80
je 0x452336
cmp byte [ebx + 0x12], 0
jne 0x452336
cmp dword [ebx + 0x19c], 0
jne 0x452336
mov eax, dword [edi + 0x18]
mov esi, dword [edi + 0x20]
cmp dword [eax + 0x54], esi
jg 0x4522e6
push 1
push edi
call fcn.00435e50
add esp, 8
test eax, eax
jne 0x45231a
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.00480a40
push 0
push str.rows_deleted
push 0
push 0
push edi
call fcn.00480a00
add esp, 0x1c
mov eax, dword [esp + 0x6c]
mov edi, dword [esp + 0x2c]
test eax, eax
je 0x45234c
mov ecx, dword [esp + 0x70]
mov dword [eax + 0x1ec], ecx
pop esi
pop ebp
push dword [esp + 0x98]
push edi
call fcn.0046ef50
push dword [esp + 0xa4]
push edi
call fcn.00456b60
push dword [esp + 0x3c]
push edi
call fcn.00451330
add esp, 0x18
pop edi
pop ebx
add esp, 0x88
ret