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

Disassembly:
push ecx
push ebx
push ebp
push esi
push edi
push 0x7c
call fcn.0040bba0
mov ebx, eax
mov esi, dword [esp + 0x24]
mov eax, dword [esp + 0x20]
add esp, 4
and eax, 1
mov dword [ebx + 0x14], 0
mov dword [ebx + 0x10], 0
mov ecx, dword [ebx + 0x74]
and ecx, 0xffff921e
mov dword [ebx], 0
or ecx, eax
mov dword [ebx + 0x18], 0
mov eax, dword [esp + 0x24]
mov dword [ebx + 0x3c], eax
mov dword [ebx + 0x74], ecx
mov dword [ebx + 0x2c], 0
mov dword [ebx + 0x30], 0
mov dword [ebx + 4], 0
mov dword [ebx + 0x78], 0
mov dword [ebx + 0xc], 0x4059c0
mov word [ebx + 0x20], si
mov dword [eax + esi*4], 0
mov eax, dword [esp + 0x18]
mov dword [ebx + 0x10], eax
mov dword [eax + 0x78], ebx
and dword [ebx + 0x74], 0xffffdd1f
mov edi, dword [eax]
mov eax, dword [esp + 0x28]
mov dword [ebx], edi
mov dword [esp + 0x1c], edi
movzx edx, word [eax]
mov eax, 0x136
cmp dx, ax
jne 0x403f82
mov eax, dword [ebx + 0x10]
test dword [eax + 0x74], 0x400
lea ecx, [eax + 0x74]
mov dword [esp + 0x18], ecx
je 0x403f82
mov eax, dword [eax + 0x10]
xor ebp, ebp
xor edi, edi
mov esi, dword [eax]
mov dword [esp + 0x10], esi
lea esp, [esp]
movzx eax, word [esi + 0xa]
cmp ebp, eax
jge 0x403efc
test ebp, ebp
jle 0x403ea4
and dword [ecx], 0xfffffbff
push ebp
push dword [ebx + 0x10]
call fcn.00408c10
mov ecx, dword [ebx + 0x10]
add esp, 8
add ecx, 0x74
mov dword [esp + 0x18], ecx
test dword [ecx], 0x400
je 0x403ef3
mov ecx, dword [esp + 0x1c]
xor eax, eax
mov edi, 1
mov edx, dword [ecx]
add edx, 8
mov ecx, dword [esp + 0x24]
mov esi, dword [edx]
mov ecx, dword [ecx + eax*4]
cmp esi, ecx
jne 0x403ed4
mov ecx, dword [ecx + 0x80]
shr ecx, 1
xor ecx, dword [esi + 0x80]
test cl, 4
je 0x403ed6
xor edi, edi
add edx, 0x88
test edi, edi
je 0x403eeb
inc eax
cmp eax, dword [esp + 0x20]
jb 0x403eb4
test edi, edi
jne 0x403f1c
mov esi, dword [esp + 0x10]
mov ecx, dword [esp + 0x18]
inc ebp
test edi, edi
je 0x403e70
cmp word [esi + 0xa], 1
jbe 0x4041d2
push 0
push dword [ebx + 0x10]
call fcn.00408c10
add esp, 8
mov eax, ebx
pop edi
pop esi
pop ebp
pop ebx
pop ecx
ret
test dword [0x4701f0], 0x200
je 0x403f54
push dword [esp + 0x28]
call fcn.004046b0
mov eax, dword [esp + 0x20]
add esp, 4
push dword [eax + 0xd4]
push str.Avoided_full_sorting___s_n
call fcn.0041fb70
add eax, 0x40
push eax
call fcn.0041fd25
add esp, 0xc
mov eax, dword [ebx + 0x10]
mov eax, dword [eax + 0x10]
test dword [eax + 0x74], 0x8000
jne 0x403f70
push ebp
push dword [esp + 0x14]
call fcn.0040eae0
add esp, 8
mov eax, dword [ebx + 0x10]
pop edi
pop esi
pop ebp
or dword [eax + 0x74], 0x800
mov eax, ebx
pop ebx
pop ecx
ret
mov eax, 0x107
lea ecx, [eax + 0x2e]
cmp dx, ax
je 0x403fac
mov eax, 0x108
cmp dx, ax
je 0x403fac
cmp dx, cx
je 0x403fac
mov eax, 0x103
cmp dx, ax
jne 0x4041d2
test byte [edi + 0xc4], 2
jne 0x4041d2
test byte [edi + 0x10c], 1
jne 0x4041d2
movzx eax, word [0x46df38]
xor ebp, ebp
add eax, 0x38
lea ecx, [edi + eax*4]
movzx eax, word [edi + 0xa]
mov dword [esp + 0x10], ecx
mov dword [esp + 0x18], eax
cmp ebp, eax
jge 0x4041d2
mov eax, 0x135
cmp dx, ax
jne 0x40400e
mov eax, dword [ecx]
mov ecx, dword [eax + 0x54]
mov eax, 0x66666667
sub ecx, edi
sub ecx, 0x20
imul ecx
sar edx, 3
mov ebp, edx
shr ebp, 0x1f
add ebp, edx
lea eax, [ebp*4]
add eax, ebp
movzx eax, word [edi + eax*4 + 0x2c]
cmp esi, eax
ja 0x4041d2
mov eax, dword [esp + 0x1c]
lea esi, [ebp*2 + 2]
xor edx, edx
mov edi, 1
add esi, ebp
mov ecx, dword [eax]
lea esi, [ecx + esi*4]
lea ecx, [ecx]
mov eax, dword [esp + 0x24]
mov ecx, dword [esi]
mov eax, dword [eax + edx*4]
cmp ecx, eax
jne 0x40405f
mov eax, dword [eax + 0x80]
shr eax, 1
xor eax, dword [ecx + 0x80]
test al, 4
je 0x404061
xor edi, edi
add esi, 0x88
test edi, edi
je 0x404076
inc edx
cmp edx, dword [esp + 0x20]
jb 0x404040
test edi, edi
jne 0x4040a1
mov eax, dword [esp + 0x28]
mov ecx, 0x135
movzx edx, word [eax]
cmp dx, cx
je 0x4041d2
mov esi, dword [esp + 0x20]
inc ebp
mov edi, dword [esp + 0x1c]
mov eax, dword [esp + 0x18]
mov ecx, dword [esp + 0x10]
jmp 0x403fe1
mov edi, dword [esp + 0x28]
mov ecx, 0x135
movzx eax, word [edi]
cmp ax, cx
jne 0x404149
mov eax, dword [edi + 0x20]
mov ecx, 0x12a
movzx eax, word [eax]
cmp ax, cx
je 0x404102
mov ecx, 0x12c
cmp ax, cx
je 0x404102
mov ecx, 0x12b
cmp ax, cx
je 0x404102
mov ecx, 0x12d
cmp ax, cx
je 0x404102
mov ecx, 0x130
cmp ax, cx
je 0x404102
mov ecx, 0x139
cmp ax, cx
je 0x404102
mov ecx, 0x12e
cmp ax, cx
jne 0x404149
test dword [0x4701f0], 0x200
je 0x404137
push edi
call fcn.004046b0
mov eax, dword [esp + 0x20]
add esp, 4
push dword [eax + 0xd4]
push str.Avoided_full_sorting___s_n
call fcn.0041fb70
add eax, 0x40
push eax
call fcn.0041fd25
add esp, 0xc
mov eax, dword [ebx + 0x10]
pop edi
pop esi
pop ebp
or dword [eax + 0x74], 0x800
mov eax, ebx
pop ebx
pop ecx
ret
test dword [0x4701f0], 0x200
je 0x404180
push edi
call fcn.004046b0
mov esi, dword [esp + 0x20]
add esp, 4
push dword [esi + 0xd4]
push str.Avoided_sorting___s_n
call fcn.0041fb70
add eax, 0x40
push eax
call fcn.0041fd25
add esp, 0xc
jmp 0x404184
mov esi, dword [esp + 0x1c]
mov eax, 0x135
cmp word [edi], ax
je 0x40419a
push ebp
push esi
call fcn.0040eae0
add esp, 8
jmp 0x4041b7
lea eax, [ebp*4 + 8]
add eax, ebp
lea ecx, [esi + eax*4]
movzx eax, word [0x46df38]
mov eax, dword [esi + eax*4 + 0xe0]
mov dword [eax + 0x54], ecx
mov eax, 0x135
cmp word [edi], ax
jne 0x4041c8
or dword [ebx + 0x74], 0x200
or dword [ebx + 0x74], 0x2000
mov dword [ebx + 0x18], esi
pop edi
pop esi
pop ebp
mov eax, ebx
pop ebx
pop ecx
ret