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

Disassembly:
sub esp, 0x88
push ebx
mov ebx, dword [esp + 0x90]
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 0x503f73
push esi
push dword [esp + 0xa0]
push ebx
call fcn.00525a60
mov esi, eax
add esp, 8
mov dword [esp + 0x44], esi
test esi, esi
je 0x503f72
cmp dword [esi + 0x38], ebp
jne 0x50370d
mov eax, dword [ebx]
mov eax, dword [eax + 0x10]
mov eax, dword [eax + 0x1c]
test eax, eax
je 0x503716
cmp dword [eax + 0x30], ebp
je 0x503716
cmp byte [ebx + 0x9d], 0
je 0x503729
mov al, byte [esi + 0x2b]
xor ebp, ebp
mov dword [esp + 0x50], ebp
mov byte [esp + 0x12], al
mov byte [esp + 0x13], al
jmp 0x503751
push 0
push 0
push 0x80
push esi
push ebx
call fcn.00543fe0
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 0x50376b
push 0
push 0
push esi
push ebx
call fcn.0050d380
add esp, 0x10
mov dword [esp + 0x14], 0
test eax, eax
je 0x503773
mov dword [esp + 0x14], 1
cmp byte [esi + 0x2b], 1
je 0x503780
cmp word [esi + 0x22], 0
jg 0x503792
push esi
push ebx
call fcn.00549db0
add esp, 8
test eax, eax
jne 0x503f70
push ebp
push esi
push ebx
call fcn.00514580
add esp, 0xc
test eax, eax
jne 0x503f70
mov ecx, dword [esi + 0x3c]
mov ebp, 0xffff8000
test ecx, ecx
je 0x5037c8
mov eax, dword [edi + 0x10]
xor ebp, ebp
add eax, 0xc
cmp dword [eax], ecx
je 0x5037c8
nop dword [eax]
lea eax, [eax + 0x10]
inc ebp
cmp dword [eax], ecx
jne 0x5037c0
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.004f9a50
add esp, 0x14
mov dword [esp + 0x4c], eax
cmp eax, 1
je 0x503f70
mov ecx, dword [esp + 0xa0]
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 0x503823
inc ecx
inc edx
mov dword [ebx + 0x28], ecx
mov eax, dword [eax + 0x14]
test eax, eax
jne 0x503813
mov dword [esp + 0x3c], edx
cmp byte [esp + 0x12], 2
jne 0x503842
mov ecx, dword [ebx + 0x100]
mov eax, dword [esi]
mov dword [esp + 0x6c], ebx
mov dword [esp + 0x70], ecx
mov dword [ebx + 0x100], eax
jmp 0x503852
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 0x50387d
cmp dword [ebx + 0x7c], edi
jne 0x50386a
mov eax, dword [ebx]
test byte [eax + 0x50], 8
jne 0x50386a
mov byte [ebx + 0x17], 1
push ebx
call fcn.0052ba20
mov edi, eax
add esp, 4
test edi, edi
je 0x503f54
cmp byte [ebx + 0x12], 0
jne 0x50388a
or dword [edi + 0x98], 0x10
push ebp
push dword [esp + 0x18]
push ebx
call fcn.004fa500
add esp, 0xc
cmp byte [esp + 0x13], 2
jne 0x5038ce
push dword [esp + 0x18]
push dword [esp + 0xb0]
push dword [esp + 0xb0]
push dword [esp + 0xb0]
push esi
push ebx
call fcn.00515f40
mov eax, dword [esp + 0x30]
add esp, 0x18
mov dword [esp + 0x58], eax
mov dword [esp + 0x1c], eax
mov eax, dword [esp + 0xa0]
xorps xmm0, xmm0
push dword [esp + 0xa4]
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 + 0x80], ebx
call fcn.00520110
add esp, 8
test eax, eax
jne 0x503f54
mov ecx, dword [esp + 0x34]
mov ecx, dword [ecx + 0x24]
and ecx, 1
or eax, ecx
je 0x50395b
cmp byte [ebx + 0x12], 0
jne 0x50395b
cmp dword [ebx + 0x80], 0
jne 0x50395b
cmp byte [ebx + 0x9b], 0
jne 0x50395b
inc dword [ebx + 0x2c]
mov eax, dword [ebx + 0x2c]
push eax
push 0
push 0x47
push edi
mov dword [esp + 0x40], eax
call fcn.0052b410
add esp, 0x10
cmp dword [esp + 0x4c], 0
jne 0x503a8e
cmp dword [esp + 0xa4], 0
jne 0x503a8e
cmp dword [esp + 0x14], 0
jne 0x503a8e
cmp byte [esi + 0x2b], 1
je 0x503a8e
push dword [esi]
push 1
push dword [esi + 0x14]
push ebp
push ebx
call fcn.00526e70
add esp, 0x14
test byte [esi + 0x1c], 0x80
jne 0x5039c3
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.0052b4d0
add esp, 0x1c
mov esi, dword [esi + 8]
test esi, esi
je 0x503f1f
mov ebx, dword [esp + 0x44]
mov eax, dword [esi + 0x38]
and al, 3
cmp al, 2
jne 0x503a29
test byte [ebx + 0x1c], 0x80
je 0x503a29
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 0x503a0f
push edx
push ebp
push eax
push 0x91
push edi
call fcn.004dd7e0
add esp, 0x14
jmp 0x503a77
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 0x503a60
mov ecx, dword [edi + 0x6c]
mov edx, dword [esi + 0x2c]
cmp dword [edi + 0x70], ecx
jg 0x503a48
push 0
push ebp
push edx
push 0x91
push edi
call fcn.004dd7e0
add esp, 0x14
jmp 0x503a77
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 0x5039d2
mov ebx, dword [esp + 0x9c]
jmp 0x503f1f
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 0x503adc
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.0052b410
add esp, 0x10
jmp 0x503b28
push esi
call fcn.0051e750
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.0052b410
push dword [esp + 0x28]
mov dword [esp + 0x50], eax
push ebx
call fcn.00538220
add esp, 0x1c
mov eax, dword [esp + 0x18]
inc eax
push eax
push ebp
push 0
push 0
push 0
push dword [esp + 0xb8]
push dword [esp + 0xb8]
push ebx
call fcn.0053a1e0
mov edx, eax
add esp, 0x20
mov dword [esp + 0x60], edx
test edx, edx
je 0x503f54
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 0x503b85
mov eax, dword [ebx + 0x7c]
mov ecx, ebx
test eax, eax
cmovne ecx, eax
mov byte [ecx + 0x14], 1
test byte [edx + 0x30], 1
je 0x503b9d
push dword [esp + 0x18]
push 0x8f
push edi
call fcn.0052b3b0
add esp, 0xc
mov eax, dword [esp + 0x30]
test eax, eax
je 0x503bb3
push 1
push eax
push 0x56
push edi
call fcn.0052b410
add esp, 0x10
mov ecx, dword [esp + 0x14]
test ecx, ecx
je 0x503bfb
mov eax, dword [esp + 0x40]
xor ebp, ebp
cwde
test eax, eax
jle 0x503bf5
mov ebx, 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.00506290
mov ecx, dword [esp + 0x28]
inc ebp
add esp, 0x14
cmp ebp, ebx
jl 0x503bc8
mov ebx, dword [esp + 0x9c]
mov ebp, dword [esp + 0x2c]
jmp 0x503c13
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.00506290
add esp, 0x14
cmp byte [esp + 0x12], 0
je 0x503cb9
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.00503030
mov ecx, eax
add esp, 0xc
mov dword [esp + 0x24], ecx
test ecx, ecx
jne 0x503c5a
push dword [esp + 0x60]
call fcn.0053d6f0
add esp, 4
jmp 0x503f54
mov eax, dword [esp + 0x3c]
inc eax
push eax
push 1
push ecx
call sub.VCRUNTIME140.dll_memset
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 0x503c8a
sub eax, ecx
mov byte [eax + edx], 0
mov eax, dword [esp + 0x4c]
test eax, eax
js 0x503c98
sub eax, ecx
mov byte [eax + edx], 0
mov eax, dword [esp + 0x38]
test eax, eax
je 0x503caa
push eax
push edi
call fcn.0052b950
add esp, 8
dec dword [ebx + 0x38]
mov eax, dword [ebx + 0x38]
mov dword [esp + 0x5c], eax
jmp 0x503d37
mov ecx, dword [esp + 0x14]
test ecx, ecx
je 0x503d10
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.00512680
add esp, 8
push eax
push ebp
push esi
push dword [esp + 0x3c]
push 0x61
push edi
call fcn.0052b4d0
push esi
push dword [esp + 0x4c]
push ebp
push dword [esp + 0x48]
push 0x8a
push edi
call fcn.0052b550
mov esi, dword [esp + 0x78]
add esp, 0x34
jmp 0x503d2b
push ebp
push dword [esp + 0x58]
mov dword [esp + 0x30], 1
push 0x9c
push edi
call fcn.0052b410
add esp, 0x10
push dword [esp + 0x60]
call fcn.0053d6f0
add esp, 4
cmp byte [esp + 0x13], 2
je 0x503d93
cmp byte [esp + 0x12], 2
mov dword [esp + 0x38], 0
jne 0x503d5c
push 0xf
push edi
call fcn.0052b360
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.005167d0
mov al, byte [esp + 0x32]
add esp, 0x20
cmp al, 2
jne 0x503d97
push dword [esp + 0x38]
push edi
call fcn.00535850
add esp, 8
jmp 0x503d9b
mov al, byte [esp + 0x12]
test al, al
je 0x503dd0
cmp byte [esi + 0x2b], 1
mov ecx, dword [esp + 0x1c]
je 0x503e35
mov eax, dword [esp + 0x24]
sub eax, dword [esp + 0x18]
cmp byte [eax + ecx], 0
je 0x503e2f
mov eax, dword [esp + 0x28]
cwde
push eax
push ebp
push dword [esp + 0x64]
push ecx
push 0x1c
push edi
call fcn.0052b550
add esp, 0x18
jmp 0x503e2b
cmp dword [esp + 0x14], 0
je 0x503e15
push dword [esp + 0x20]
push 0x24
push edi
call fcn.0052b3b0
add esp, 0xc
mov dword [esp + 0x48], eax
cmp byte [esi + 0x2b], 1
push ebp
jne 0x503e01
push 0
push dword [esp + 0x28]
push 0x5e
push edi
call fcn.0052b470
jmp 0x503e28
push dword [esp + 0x24]
push 0x86
push edi
call fcn.0052b410
add esp, 0x10
jmp 0x503e2b
push ebp
push 0
push dword [esp + 0x5c]
push 0x2e
push edi
call fcn.0052b470
mov dword [esp + 0x5c], eax
add esp, 0x14
mov ecx, dword [esp + 0x1c]
cmp byte [esi + 0x2b], 1
jne 0x503e9b
push esi
push dword [esp + 0x38]
call fcn.00511a50
push esi
push ebx
mov dword [esp + 0x74], eax
call fcn.00539560
mov ecx, dword [ebx + 0x7c]
add esp, 0x10
test ecx, ecx
mov edx, ebx
cmovne edx, ecx
cmp byte [esp + 0x12], 1
mov byte [edx + 0x15], 1
jne 0x503e7b
push dword [esp + 0x18]
push 0x7a
push edi
call fcn.0052b3b0
add esp, 0xc
cmp dword [ebx + 0x7c], 0
jne 0x503e7b
mov byte [ebx + 0x14], 0
push 0xfffffffffffffff5
push dword [esp + 0x68]
push ebp
push 1
push 0
push 7
push edi
call fcn.0052b4d0
push 2
push edi
call fcn.0052b930
add esp, 0x24
jmp 0x503ec8
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.00510920
add esp, 0x2c
cmp byte [esp + 0x12], 0
je 0x503ee7
push dword [esp + 0x5c]
push edi
call fcn.00537e30
push dword [esp + 0x68]
call fcn.0053d6f0
add esp, 0xc
jmp 0x503f1f
cmp dword [esp + 0x14], 0
mov esi, dword [esp + 0x48]
je 0x503f0e
lea eax, [esi + 1]
push eax
push dword [esp + 0x24]
push 0x27
push edi
call fcn.0052b410
push esi
push edi
call fcn.00535820
add esp, 0x18
jmp 0x503f1f
push esi
push edi
call fcn.00535260
push esi
push edi
call fcn.00535820
add esp, 0x10
cmp byte [ebx + 0x12], 0
jne 0x503f3d
cmp dword [ebx + 0x80], 0
jne 0x503f3d
cmp dword [ebx + 0x78], 0
je 0x503f3d
push ebx
call fcn.004c7610
add esp, 4
mov eax, dword [esp + 0x30]
test eax, eax
je 0x503f54
push str.rows_deleted
push eax
push edi
call fcn.004ff000
add esp, 0xc
mov eax, dword [esp + 0x6c]
mov edi, dword [esp + 0x34]
mov ebp, dword [esp + 0x24]
test eax, eax
je 0x503f72
mov ecx, dword [esp + 0x70]
mov dword [eax + 0x100], ecx
jmp 0x503f72
xor ebp, ebp
pop esi
push dword [esp + 0x9c]
push edi
call fcn.00525490
mov eax, dword [esp + 0xa8]
add esp, 8
test eax, eax
je 0x503f98
push eax
push edi
call fcn.00508c00
add esp, 8
test ebp, ebp
je 0x503fa6
push ebp
push edi
call fcn.00503150
add esp, 8
pop edi
pop ebp
pop ebx
add esp, 0x88
ret