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

Disassembly:
jmp 0x4afee0
sub esp, 0x164
mov eax, dword [0x589780]
xor eax, esp
mov dword [esp + 0x160], eax
mov eax, dword [esp + 0x168]
push esi
mov esi, dword [esp + 0x170]
mov dword [esp + 0x40], eax
mov dword [esp + 0x48], esi
push edi
mov edi, ecx
test esi, esi
je 0x4b04d7
push ebp
xor ebp, ebp
mov dword [edi + 0x3c], 0
lea ecx, [esp + 0x88]
mov byte [edi + 0x48], 1
mov byte [esp + 0xf], 0
mov dword [esp + 0x4c], ebp
call fcn.0040bb3b
xor edx, edx
mov dword [esp + 0x8c], ebp
mov dword [esp + 0x10], edx
cmp dword [edi + 0xa4], edx
jle 0x4b04ca
mov ecx, dword [esp + 0xa8]
push ebx
mov ebx, dword [esp + 0x180]
imul eax, dword [esi + edx*4], 0x34
add eax, dword [edi + 0xa0]
movups xmm1, xmmword [eax]
movups xmm0, xmmword [eax + 0x10]
movd esi, xmm1
movups xmmword [esp + 0x68], xmm0
movups xmm0, xmmword [eax + 0x20]
mov eax, dword [eax + 0x30]
movups xmmword [esp + 0x58], xmm1
mov dword [esp + 0x88], eax
movups xmmword [esp + 0x78], xmm0
mov dword [esp + 0x18], esi
cmp esi, dword [edi]
je 0x4affb4
cmp dword [esp + 0x184], 0
je 0x4b00c5
cmp dword [esp + 0x68], 0
je 0x4b00c5
cmp byte [esp + 0x13], 0
je 0x4affe4
push 0
push 0x566f78
lea ecx, [esp + 0x3c]
call fcn.004092cd
push 1
push ebx
lea eax, [esp + 0x3c]
mov ecx, edi
push eax
push ebp
call fcn.0040380f
lea ecx, [esp + 0x34]
call fcn.004042ff
test ebx, ebx
jne 0x4b0091
mov eax, dword [edi + 0x3c]
cmp eax, dword [edi + 0x40]
jl 0x4b0091
lea ecx, [esp + 0x1c]
call fcn.0040c383
cmp esi, dword [edi]
jne 0x4b0067
mov ecx, dword [esp + 0x4c]
call fcn.004026a3
push eax
lea eax, [esp + 0x20]
push 0x566f7c
push eax
call fcn.004067fd
add esp, 0xc
lea ecx, [esp + 0x1c]
call fcn.0040abf0
cmp eax, 0x1f
jge 0x4b0057
mov esi, 0x1f
sub esi, eax
nop word [eax + eax]
push 0x566f88
lea ecx, [esp + 0x20]
call fcn.0040b4ab
sub esi, 1
jne 0x4b0040
mov esi, dword [esp + 0x18]
push 0x566f8c
lea ecx, [esp + 0x20]
call fcn.0040b4ab
jmp 0x4b007a
push esi
lea eax, [esp + 0x20]
push str.loc__0X:
push eax
call fcn.004067fd
add esp, 0xc
push 1
push 0
lea eax, [esp + 0x24]
mov ecx, edi
push eax
push esi
call fcn.0040380f
lea ecx, [esp + 0x1c]
jmp 0x4b00b5
push 0
push 0x566f78
lea ecx, [esp + 0x3c]
call fcn.004092cd
push 1
push ebx
lea eax, [esp + 0x3c]
mov ecx, edi
push eax
push esi
call fcn.0040380f
lea ecx, [esp + 0x34]
call fcn.004042ff
mov edx, dword [esp + 0x14]
mov ecx, dword [esp + 0xac]
cmp dword [esp + 0x60], 0
mov ebp, dword [esp + 0x5c]
jne 0x4b0493
cmp dword [esp + 0x64], 0
jne 0x4b0493
movups xmm0, xmmword [esp + 0x6c]
mov ecx, esi
mov dword [esp + 0xac], ecx
movups xmmword [esp + 0x150], xmm0
movups xmm0, xmmword [esp + 0x7c]
movups xmmword [esp + 0x160], xmm0
nop dword [eax]
nop word [eax + eax]
cmp dword [esp + 0x90], 0
mov eax, esi
mov byte [esp + 0x13], 1
cmovne eax, dword [esp + 0x8c]
mov dword [esp + 0x50], eax
test ebx, ebx
jne 0x4b02c2
mov eax, dword [edi + 0x3c]
cmp eax, dword [edi + 0x40]
jl 0x4b02c2
push ebx
lea eax, [esp + 0x154]
push eax
push ecx
lea ecx, [esp + 0x98]
call fcn.0040556a
push ebx
lea ecx, [esp + 0x90]
call fcn.00407c02
push eax
lea ecx, [esp + 0x24]
call fcn.004092cd
cmp dword [esp + 0x9c], ebx
je 0x4b02a5
mov edx, dword [edi + 0xa4]
xor ecx, ecx
test edx, edx
jle 0x4b02a5
mov eax, dword [edi + 0xa0]
mov esi, dword [esp + 0xb0]
cmp esi, dword [eax]
je 0x4b01a7
inc ecx
add eax, 0x34
cmp ecx, edx
jl 0x4b0196
jmp 0x4b02a1
push 0x8000
push 0xb
push 0x566f88
lea ecx, [esp + 0x28]
call fcn.0040173f
mov esi, eax
test esi, esi
js 0x4b01fb
lea eax, [esp + 0x1c]
push eax
lea ecx, [esp + 0x38]
call fcn.004014c4
push esi
lea ecx, [esp + 0x38]
call fcn.00402eff
xor ecx, ecx
mov word [eax], cx
lea ecx, [esp + 0x34]
call fcn.004026a3
push eax
lea ecx, [esp + 0x20]
call fcn.0040c2bb
lea ecx, [esp + 0x34]
call fcn.004042ff
lea ecx, [esp + 0x1c]
call fcn.0040abf0
cmp eax, 0x13
jae 0x4b0223
mov esi, 0x13
sub esi, eax
push 0x566f88
lea ecx, [esp + 0x20]
call fcn.0040b4ab
sub esi, 1
jne 0x4b0210
lea ecx, [esp + 0x1c]
call fcn.0040abf0
lea ecx, [esp + 0x1c]
mov esi, eax
call fcn.004026a3
cmp word [eax + esi*2 - 2], 0x20
je 0x4b024d
push 0x566f88
lea ecx, [esp + 0x20]
call fcn.0040b4ab
mov eax, dword [esp + 0xb0]
cmp eax, dword [edi]
jne 0x4b0267
push dword [esp + 0x4c]
lea ecx, [esp + 0x20]
call fcn.00407db0
jmp 0x4b02a1
lea eax, [esp + 0x1c]
push eax
lea ecx, [esp + 0x38]
call fcn.004014c4
push dword [esp + 0xb0]
lea ecx, [esp + 0x38]
call fcn.004026a3
push eax
lea eax, [esp + 0x24]
push str._sloc__0X
push eax
call fcn.004067fd
add esp, 0x10
lea ecx, [esp + 0x34]
call fcn.004042ff
mov esi, dword [esp + 0x18]
push 0
push 0
lea eax, [esp + 0x24]
mov ecx, edi
push eax
push dword [esp + 0x98]
call fcn.0040380f
lea ecx, [esp + 0x1c]
jmp 0x4b0303
push 0
lea eax, [esp + 0x154]
push eax
push ecx
lea ecx, [esp + 0x98]
call fcn.0040556a
push 0
push 0x566f78
lea ecx, [esp + 0x3c]
call fcn.004092cd
push 0
push ebx
lea eax, [esp + 0x3c]
mov ecx, edi
push eax
push dword [esp + 0x98]
call fcn.0040380f
lea ecx, [esp + 0x34]
call fcn.004042ff
cmp dword [esp + 0x184], 0
je 0x4b046a
cmp dword [esp + 0x98], 0
jne 0x4b0368
cmp dword [esp + 0x94], 0
jne 0x4b0368
mov ax, word [esp + 0xa4]
mov ecx, 0xc2
cmp ax, cx
je 0x4b0368
mov ecx, 0xc3
cmp ax, cx
je 0x4b0368
mov ecx, 0xca
cmp ax, cx
je 0x4b0368
mov ecx, 0xcb
cmp ax, cx
je 0x4b0368
mov ecx, 0xcf
cmp ax, cx
jne 0x4b046a
mov ecx, dword [esp + 0xac]
cmp ecx, ebp
jbe 0x4b0386
mov eax, dword [edi + 0xa4]
mov edx, dword [esp + 0x14]
dec eax
cmp edx, eax
jge 0x4b0475
push 0
push 0x566f78
lea ecx, [esp + 0x140]
call fcn.004092cd
push 1
push ebx
lea eax, [esp + 0x140]
mov ecx, edi
push eax
push dword [esp + 0x98]
call fcn.0040380f
cmp dword [esp + 0x98], 0
jne 0x4b03cb
cmp dword [esp + 0x94], 0
je 0x4b03fb
jmp 0x4b0459
mov ax, word [esp + 0xa4]
mov ecx, 0xe9
cmp ax, cx
je 0x4b03fb
mov ecx, 0xea
cmp ax, cx
je 0x4b03fb
mov ecx, 0xeb
cmp ax, cx
je 0x4b03fb
mov ecx, 0xff
cmp ax, cx
jne 0x4b0459
push 0
push str.___________________________________________________________
lea ecx, [esp + 0x24]
call fcn.004092cd
push 0
push 0x566f78
lea ecx, [esp + 0x3c]
call fcn.004092cd
push 1
push ebx
lea eax, [esp + 0x24]
mov ecx, edi
push eax
push dword [esp + 0x98]
call fcn.0040380f
push 1
push ebx
lea eax, [esp + 0x3c]
mov ecx, edi
push eax
push dword [esp + 0x98]
call fcn.0040380f
lea ecx, [esp + 0x34]
call fcn.004042ff
lea ecx, [esp + 0x1c]
call fcn.004042ff
lea ecx, [esp + 0x138]
mov byte [esp + 0x13], 0
call fcn.004042ff
mov edx, dword [esp + 0x14]
mov ecx, dword [esp + 0xac]
cmp ecx, ebp
ja 0x4b0493
cmp byte [edi + 0x48], 0
jne 0x4b0110
test ebx, ebx
jne 0x4b0493
mov eax, dword [edi + 0x3c]
cmp eax, dword [edi + 0x44]
jl 0x4b0110
cmp byte [edi + 0x48], 0
jne 0x4b04b0
mov eax, dword [edi + 0x3c]
cmp eax, dword [edi + 0x44]
jl 0x4b04b0
cmp ecx, ebp
jbe 0x4b04c9
mov eax, dword [edi + 0xa4]
dec eax
cmp edx, eax
jl 0x4b04c9
mov ebp, dword [esp + 0x50]
inc edx
mov esi, dword [esp + 0x54]
mov dword [esp + 0x14], edx
cmp edx, dword [edi + 0xa4]
jl 0x4aff61
pop ebx
lea ecx, [esp + 0x88]
call fcn.0040a835
pop ebp
mov ecx, dword [esp + 0x168]
pop edi
pop esi
xor ecx, esp
call fcn.0040512d
add esp, 0x164
ret 0x10