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

Disassembly:
sub esp, 0x8c
push ebx
mov ebx, dword [esp + 0x94]
xor eax, eax
push ebp
xor ebp, ebp
mov dword [esp + 0x14], 0
push edi
xorps xmm0, xmm0
mov edi, dword [ebx]
mov dword [esp + 0x54], 0
mov dword [esp + 0x2c], 0
mov dword [esp + 0x20], ebp
mov dword [esp + 0x28], ebp
mov dword [esp + 0x3c], 1
mov dword [esp + 0x1c], ebp
mov dword [esp + 0x50], ebp
mov dword [esp + 0x58], ebp
mov dword [esp + 0x44], ebp
mov dword [esp + 0x34], eax
movlpd qword [esp + 0x60], xmm0
mov dword [esp + 0x30], edi
cmp dword [ebx + 0x24], eax
jne 0x4afbae
push esi
push dword [esp + 0xa4]
push ebx
call fcn.004d1cc0
mov esi, eax
add esp, 8
mov dword [esp + 0x44], esi
test esi, esi
je 0x4afbad
cmp dword [esi + 0x38], ebp
jne 0x4af32d
mov eax, dword [ebx]
mov eax, dword [eax + 0x10]
mov eax, dword [eax + 0x1c]
test eax, eax
je 0x4af336
cmp dword [eax + 0x30], ebp
je 0x4af336
cmp byte [ebx + 0xa1], 0
je 0x4af349
mov al, byte [esi + 0x2b]
xor ebp, ebp
mov dword [esp + 0x50], ebp
mov byte [esp + 0x12], al
mov byte [esp + 0x13], al
jmp 0x4af371
push 0
push 0
push 0x80
push esi
push ebx
call fcn.004f07b0
mov ebp, eax
add esp, 0x14
mov al, byte [esi + 0x2b]
mov dword [esp + 0x50], ebp
mov byte [esp + 0x12], al
mov byte [esp + 0x13], al
test ebp, ebp
jne 0x4af38b
push 0
push 0
push esi
push ebx
call fcn.004b91d0
add esp, 0x10
mov dword [esp + 0x14], 0
test eax, eax
je 0x4af393
mov dword [esp + 0x14], 1
cmp byte [esi + 0x2b], 1
je 0x4af3a0
cmp word [esi + 0x22], 0
jg 0x4af3b2
push esi
push ebx
call fcn.004f6940
add esp, 8
test eax, eax
jne 0x4afbab
push ebp
push esi
push ebx
call fcn.004c0380
add esp, 0xc
test eax, eax
jne 0x4afbab
mov ecx, dword [esi + 0x3c]
mov ebp, 0xffff8000
test ecx, ecx
je 0x4af3e8
mov eax, dword [edi + 0x10]
xor ebp, ebp
add eax, 0xc
cmp dword [eax], ecx
je 0x4af3e8
nop dword [eax]
lea eax, [eax + 0x10]
inc ebp
cmp dword [eax], ecx
jne 0x4af3e0
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.004a53a0
add esp, 0x14
mov dword [esp + 0x4c], eax
cmp eax, 1
je 0x4afbab
mov ecx, dword [esp + 0xa4]
xor edx, edx
mov eax, dword [ebx + 0x28]
mov dword [esp + 0x18], eax
mov dword [esp + 0x3c], edx
mov dword [ecx + 0x34], eax
mov ecx, dword [ebx + 0x28]
inc ecx
mov dword [ebx + 0x28], ecx
mov eax, dword [esi + 8]
test eax, eax
je 0x4af443
inc ecx
inc edx
mov dword [ebx + 0x28], ecx
mov eax, dword [eax + 0x14]
test eax, eax
jne 0x4af433
mov dword [esp + 0x3c], edx
cmp byte [esp + 0x12], 2
jne 0x4af462
mov ecx, dword [ebx + 0x104]
mov eax, dword [esi]
mov dword [esp + 0x6c], ebx
mov dword [esp + 0x70], ecx
mov dword [ebx + 0x104], eax
jmp 0x4af472
mov eax, dword [esp + 0x68]
mov dword [esp + 0x6c], eax
mov eax, dword [esp + 0x64]
mov dword [esp + 0x70], eax
mov edi, dword [ebx + 8]
test edi, edi
jne 0x4af4a0
cmp dword [ebx + 0x80], edi
jne 0x4af48d
mov eax, dword [ebx]
test byte [eax + 0x50], 8
jne 0x4af48d
mov byte [ebx + 0x17], 1
push ebx
call fcn.004d7d60
mov edi, eax
add esp, 4
test edi, edi
je 0x4afb8f
cmp byte [ebx + 0x12], 0
jne 0x4af4ad
or dword [edi + 0x98], 0x10
push ebp
push dword [esp + 0x18]
push ebx
call fcn.004a5e80
add esp, 0xc
cmp byte [esp + 0x13], 2
jne 0x4af4f1
push dword [esp + 0x18]
push dword [esp + 0xb4]
push dword [esp + 0xb4]
push dword [esp + 0xb4]
push esi
push ebx
call fcn.004c1d50
mov eax, dword [esp + 0x30]
add esp, 0x18
mov dword [esp + 0x58], eax
mov dword [esp + 0x1c], eax
mov eax, dword [esp + 0xa4]
xorps xmm0, xmm0
push dword [esp + 0xa8]
mov dword [esp + 0x80], eax
lea eax, [esp + 0x7c]
push eax
movlpd qword [esp + 0x88], xmm0
movlpd qword [esp + 0x90], xmm0
movlpd qword [esp + 0x98], xmm0
mov dword [esp + 0xa0], 0
mov dword [esp + 0x80], ebx
call fcn.004cc280
add esp, 8
test eax, eax
jne 0x4afb8f
mov ecx, dword [esp + 0x34]
mov ecx, dword [ecx + 0x24]
and ecx, 1
or eax, ecx
je 0x4af589
cmp byte [ebx + 0x12], 0
jne 0x4af589
cmp dword [ebx + 0x84], 0
jne 0x4af589
cmp byte [ebx + 0x9f], 0
jne 0x4af589
inc dword [ebx + 0x2c]
mov eax, dword [ebx + 0x2c]
push eax
push 0
push 0x47
push edi
mov dword [esp + 0x40], eax
call fcn.004d7790
add esp, 0x10
cmp dword [esp + 0x4c], 0
jne 0x4af6bc
cmp dword [esp + 0xa8], 0
jne 0x4af6bc
cmp dword [esp + 0x14], 0
jne 0x4af6bc
cmp byte [esi + 0x2b], 1
je 0x4af6bc
push dword [esi]
push 1
push dword [esi + 0x14]
push ebp
push ebx
call fcn.004d3150
add esp, 0x14
test byte [esi + 0x1c], 0x80
jne 0x4af5f1
mov ecx, dword [esp + 0x30]
or eax, 0xffffffff
push 0xffffffffffffffff
push dword [esi]
test ecx, ecx
cmovne eax, ecx
push eax
push ebp
push dword [esi + 0x14]
push 0x91
push edi
call fcn.004d7850
add esp, 0x1c
mov esi, dword [esi + 8]
test esi, esi
je 0x4afb5a
mov ebx, dword [esp + 0x44]
mov eax, dword [esi + 0x38]
and al, 3
cmp al, 2
jne 0x4af657
test byte [ebx + 0x1c], 0x80
je 0x4af657
mov eax, dword [esp + 0x30]
or edx, 0xffffffff
mov ecx, dword [edi + 0x6c]
test eax, eax
cmovne edx, eax
mov eax, dword [esi + 0x2c]
mov dword [esp + 0x50], eax
cmp dword [edi + 0x70], ecx
jg 0x4af63d
push edx
push ebp
push eax
push 0x91
push edi
call fcn.00486380
add esp, 0x14
jmp 0x4af6a5
mov ebx, dword [esp + 0x50]
lea eax, [ecx + 1]
mov dword [edi + 0x6c], eax
lea ecx, [ecx + ecx*4]
mov eax, dword [edi + 0x68]
mov dword [eax + ecx*4 + 4], ebx
mov dword [eax + ecx*4 + 0xc], edx
jmp 0x4af68e
mov ecx, dword [edi + 0x6c]
mov edx, dword [esi + 0x2c]
cmp dword [edi + 0x70], ecx
jg 0x4af676
push 0
push ebp
push edx
push 0x91
push edi
call fcn.00486380
add esp, 0x14
jmp 0x4af6a5
lea eax, [ecx + 1]
mov dword [edi + 0x6c], eax
lea ecx, [ecx + ecx*4]
mov eax, dword [edi + 0x68]
mov dword [eax + ecx*4 + 4], edx
mov dword [eax + ecx*4 + 0xc], 0
mov ebx, dword [esp + 0x44]
mov dword [eax + ecx*4 + 0x10], 0
mov dword [eax + ecx*4 + 8], ebp
mov dword [eax + ecx*4], 0x91
mov esi, dword [esi + 0x14]
test esi, esi
jne 0x4af600
mov ebx, dword [esp + 0xa0]
jmp 0x4afb5a
test byte [esp + 0x90], 0x40
mov eax, 1
mov ebp, dword [esp + 0x14]
cmovne ebp, eax
xor eax, eax
test ebp, ebp
sete al
test byte [esi + 0x1c], 0x80
lea eax, [eax*8 + 0x14]
movzx ebp, ax
jne 0x4af70a
mov eax, dword [ebx + 0x2c]
inc eax
mov dword [esp + 0x14], 0
push eax
push 0
push 0x4b
push edi
mov dword [esp + 0x64], eax
mov dword [ebx + 0x2c], eax
call fcn.004d7790
add esp, 0x10
jmp 0x4af756
push esi
call fcn.004ca8a0
mov dword [esp + 0x18], eax
movzx edx, word [eax + 0x32]
mov eax, dword [ebx + 0x2c]
mov dword [esp + 0x44], edx
lea ecx, [eax + 1]
mov dword [esp + 0x30], ecx
movsx ecx, dx
mov edx, dword [ebx + 0x28]
add eax, ecx
push ecx
push edx
mov dword [ebx + 0x2c], eax
lea eax, [edx + 1]
mov dword [esp + 0x2c], edx
push 0x76
push edi
mov dword [ebx + 0x28], eax
call fcn.004d7790
push dword [esp + 0x28]
mov dword [esp + 0x50], eax
push ebx
call fcn.004e4050
add esp, 0x1c
mov eax, dword [esp + 0x18]
inc eax
push eax
push ebp
push 0
push 0
push 0
push dword [esp + 0xbc]
push dword [esp + 0xbc]
push ebx
call fcn.004e6600
mov edx, eax
add esp, 0x20
mov dword [esp + 0x60], edx
test edx, edx
je 0x4afb8f
mov eax, dword [edx + 0x14]
mov dword [esp + 0x64], eax
mov eax, dword [edx + 0x18]
mov dword [esp + 0x4c], eax
mov al, byte [edx + 0x2e]
mov byte [esp + 0x12], al
mov byte [esp + 0x74], al
cmp al, 1
je 0x4af7b6
mov eax, dword [ebx + 0x80]
mov ecx, ebx
test eax, eax
cmovne ecx, eax
mov byte [ecx + 0x14], 1
test byte [edx + 0x30], 1
je 0x4af7ce
push dword [esp + 0x18]
push 0x8f
push edi
call fcn.004d7730
add esp, 0xc
mov eax, dword [esp + 0x30]
test eax, eax
je 0x4af7e4
push 1
push eax
push 0x56
push edi
call fcn.004d7790
add esp, 0x10
mov ecx, dword [esp + 0x14]
test ecx, ecx
je 0x4af833
mov eax, dword [esp + 0x40]
xor ebp, ebp
cwde
test eax, eax
jle 0x4af82d
mov ebx, eax
nop dword [eax]
mov eax, dword [esp + 0x2c]
add eax, ebp
push eax
mov eax, dword [ecx + 4]
movsx eax, word [eax + ebp*2]
push eax
push dword [esp + 0x20]
push esi
push edi
call fcn.004b2040
mov ecx, dword [esp + 0x28]
inc ebp
add esp, 0x14
cmp ebp, ebx
jl 0x4af800
mov ebx, dword [esp + 0xa0]
mov ebp, dword [esp + 0x2c]
jmp 0x4af84b
mov ebp, dword [ebx + 0x2c]
inc ebp
push ebp
push 0xffffffffffffffff
push dword [esp + 0x20]
mov dword [ebx + 0x2c], ebp
push esi
push edi
call fcn.004b2040
add esp, 0x14
cmp byte [esp + 0x12], 0
je 0x4af8ee
mov eax, dword [esp + 0x40]
movzx eax, ax
mov dword [esp + 0x28], eax
mov eax, dword [esp + 0x3c]
add eax, 2
cdq
push edx
push eax
push dword [esp + 0x3c]
call fcn.004aebd0
mov ecx, eax
add esp, 0xc
mov dword [esp + 0x24], ecx
test ecx, ecx
jne 0x4af892
push dword [esp + 0x60]
call fcn.004e9c70
add esp, 4
jmp 0x4afb8f
mov eax, dword [esp + 0x3c]
inc eax
push eax
push 1
push ecx
call fcn.00656e20
mov eax, dword [esp + 0x48]
add esp, 0xc
mov edx, dword [esp + 0x24]
mov ecx, dword [esp + 0x18]
mov byte [eax + edx + 1], 0
mov eax, dword [esp + 0x64]
test eax, eax
js 0x4af8c2
sub eax, ecx
mov byte [eax + edx], 0
mov eax, dword [esp + 0x4c]
test eax, eax
js 0x4af8d0
sub eax, ecx
mov byte [eax + edx], 0
mov eax, dword [esp + 0x38]
test eax, eax
je 0x4af8e2
push eax
push edi
call fcn.004d7c90
add esp, 8
dec dword [ebx + 0x38]
mov eax, dword [ebx + 0x38]
mov dword [esp + 0x5c], eax
jmp 0x4af96c
mov ecx, dword [esp + 0x14]
test ecx, ecx
je 0x4af945
mov eax, dword [esp + 0x40]
mov ebp, dword [ebx + 0x2c]
movsx esi, ax
inc ebp
push esi
push ecx
push dword [ebx]
mov dword [ebx + 0x2c], ebp
mov dword [esp + 0x34], 0
call fcn.004be3d0
add esp, 8
push eax
push ebp
push esi
push dword [esp + 0x3c]
push 0x61
push edi
call fcn.004d7850
push esi
push dword [esp + 0x4c]
push ebp
push dword [esp + 0x48]
push 0x8a
push edi
call fcn.004d78d0
mov esi, dword [esp + 0x78]
add esp, 0x34
jmp 0x4af960
push ebp
push dword [esp + 0x58]
mov dword [esp + 0x30], 1
push 0x9c
push edi
call fcn.004d7790
add esp, 0x10
push dword [esp + 0x60]
call fcn.004e9c70
add esp, 4
cmp byte [esp + 0x13], 2
je 0x4af9c8
cmp byte [esp + 0x12], 2
mov dword [esp + 0x38], 0
jne 0x4af991
push 0xf
push edi
call fcn.004d76e0
add esp, 8
mov dword [esp + 0x38], eax
lea eax, [esp + 0x58]
push eax
lea eax, [esp + 0x20]
push eax
push dword [esp + 0x2c]
push dword [esp + 0x24]
push 8
push 0x71
push esi
push ebx
call fcn.004c28e0
mov al, byte [esp + 0x32]
add esp, 0x20
cmp al, 2
jne 0x4af9cc
push dword [esp + 0x38]
push edi
call fcn.004e1760
add esp, 8
jmp 0x4af9d0
mov al, byte [esp + 0x12]
test al, al
je 0x4afa05
cmp byte [esi + 0x2b], 1
mov ecx, dword [esp + 0x1c]
je 0x4afa6a
mov eax, dword [esp + 0x24]
sub eax, dword [esp + 0x18]
cmp byte [eax + ecx], 0
je 0x4afa64
mov eax, dword [esp + 0x28]
cwde
push eax
push ebp
push dword [esp + 0x64]
push ecx
push 0x1c
push edi
call fcn.004d78d0
add esp, 0x18
jmp 0x4afa60
cmp dword [esp + 0x14], 0
je 0x4afa4a
push dword [esp + 0x20]
push 0x24
push edi
call fcn.004d7730
add esp, 0xc
mov dword [esp + 0x48], eax
cmp byte [esi + 0x2b], 1
push ebp
jne 0x4afa36
push 0
push dword [esp + 0x28]
push 0x5e
push edi
call fcn.004d77f0
jmp 0x4afa5d
push dword [esp + 0x24]
push 0x86
push edi
call fcn.004d7790
add esp, 0x10
jmp 0x4afa60
push ebp
push 0
push dword [esp + 0x5c]
push 0x2e
push edi
call fcn.004d77f0
mov dword [esp + 0x5c], eax
add esp, 0x14
mov ecx, dword [esp + 0x1c]
cmp byte [esi + 0x2b], 1
jne 0x4afad6
push esi
push dword [esp + 0x38]
call fcn.004bd810
push esi
push ebx
mov dword [esp + 0x74], eax
call fcn.004e5280
mov ecx, dword [ebx + 0x80]
add esp, 0x10
test ecx, ecx
mov edx, ebx
cmovne edx, ecx
cmp byte [esp + 0x12], 1
mov byte [edx + 0x15], 1
jne 0x4afab6
push dword [esp + 0x18]
push 0x7a
push edi
call fcn.004d7730
add esp, 0xc
cmp dword [ebx + 0x80], 0
jne 0x4afab6
mov byte [ebx + 0x14], 0
push 0xfffffffffffffff5
push dword [esp + 0x68]
push ebp
push 1
push 0
push 7
push edi
call fcn.004d7850
push 2
push edi
call fcn.004d7c70
add esp, 0x24
jmp 0x4afb03
push dword [esp + 0x4c]
cmp byte [ebx + 0x12], 0
push dword [esp + 0x78]
sete al
push 0xb
movzx eax, al
push eax
push dword [esp + 0x38]
push ebp
push dword [esp + 0x70]
push ecx
push dword [esp + 0x70]
push esi
push ebx
call fcn.004bc6d0
add esp, 0x2c
cmp byte [esp + 0x12], 0
je 0x4afb22
push dword [esp + 0x5c]
push edi
call fcn.004e3c60
push dword [esp + 0x68]
call fcn.004e9c70
add esp, 0xc
jmp 0x4afb5a
cmp dword [esp + 0x14], 0
mov esi, dword [esp + 0x48]
je 0x4afb49
lea eax, [esi + 1]
push eax
push dword [esp + 0x24]
push 0x27
push edi
call fcn.004d7790
push esi
push edi
call fcn.004e1730
add esp, 0x18
jmp 0x4afb5a
push esi
push edi
call fcn.004e1170
push esi
push edi
call fcn.004e1730
add esp, 0x10
cmp byte [ebx + 0x12], 0
jne 0x4afb78
cmp dword [ebx + 0x84], 0
jne 0x4afb78
cmp dword [ebx + 0x7c], 0
je 0x4afb78
push ebx
call fcn.0046f450
add esp, 4
mov eax, dword [esp + 0x30]
test eax, eax
je 0x4afb8f
push str.rows_deleted
push eax
push edi
call fcn.004aaa70
add esp, 0xc
mov eax, dword [esp + 0x6c]
mov edi, dword [esp + 0x34]
mov ebp, dword [esp + 0x24]
test eax, eax
je 0x4afbad
mov ecx, dword [esp + 0x70]
mov dword [eax + 0x104], ecx
jmp 0x4afbad
xor ebp, ebp
pop esi
push dword [esp + 0xa0]
push edi
call fcn.004d16e0
mov eax, dword [esp + 0xac]
add esp, 8
test eax, eax
je 0x4afbd3
push eax
push edi
call fcn.004b4a30
add esp, 8
test ebp, ebp
je 0x4afbe1
push ebp
push edi
call fcn.004aecf0
add esp, 8
pop edi
pop ebp
pop ebx
add esp, 0x8c
ret