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

Disassembly:
sub esp, 0x140
mov eax, dword [0xa0b130]
xor eax, esp
mov dword [esp + 0x13c], eax
mov eax, dword [esp + 0x1c8]
push ebx
push esi
mov dword [esp + 0x28], eax
lea eax, [esp + 0x84]
push edi
mov edi, dword [esp + 0x150]
mov dword [esp + 0x7c], eax
mov dword [esp + 0x80], 0
mov dword [esp + 0x84], 4
mov edx, dword [esp + 0x154]
cmp edx, dword [esp + 0x194]
jne 0x54712e
mov eax, dword [esp + 0x15c]
cmp eax, dword [esp + 0x19c]
jne 0x54712e
mov eax, dword [esp + 0x160]
cmp eax, dword [esp + 0x1a0]
je 0x547a3b
mov bl, byte [esp + 0x164]
movzx ecx, bl
lea eax, [ecx - 0x90]
cmp eax, 0x63
ja case.0x54714e.145
movzx eax, byte [eax + 0x547d0c]
jmp dword [eax*4 + 0x547cf8]
mov eax, dword [esp + 0x178]
mov esi, dword [esp + 0x174]
mov ebx, dword [esp + 0x2c]
mov ecx, ebx
push 0
mov dword [esp + 0x34], eax
lea eax, [esp + 0x50]
push esi
push eax
call fcn.004019a6
cmp byte [esp + 0x50], 0
je 0x547acb
mov ecx, dword [esp + 0x80]
cmp ecx, dword [esp + 0x84]
jb 0x5471aa
push 0
lea ecx, [esp + 0x80]
call fcn.00413c14
mov ecx, dword [esp + 0x80]
shl ecx, 5
add ecx, dword [esp + 0x7c]
push 0
push 0
push 0
mov dword [ecx], 1
lea eax, [ecx + 0x10]
mov dword [ecx + 4], eax
mov dword [ecx + 8], 0
mov dword [ecx + 0xc], 0x10
mov ecx, dword [esp + 0x8c]
mov eax, dword [esp + 0x88]
inc ecx
mov dword [esp + 0x8c], ecx
add eax, 0xffffffe4
shl ecx, 5
add eax, ecx
mov byte [esp + 0x28], 0
lea ecx, [esp + 0x18]
mov dword [esp + 0x2c], 0
mov dword [esp + 0x30], 1
mov dword [esp + 0x24], 0
mov dword [esp + 0x20], 0
mov dword [esp + 0x1c], 0
mov dword [esp + 0x18], 0x9251c4
mov dword [esp + 0x34], eax
call fcn.0040826f
mov eax, dword [esp + 0x4c]
lea ecx, [eax + eax*2]
mov eax, dword [ebx]
mov edx, dword [eax + ecx*8]
add edx, dword [ebx + 0x28]
je 0x547252
mov esi, edx
lea ecx, [esi + 1]
mov al, byte [esi]
inc esi
test al, al
jne 0x547247
sub esi, ecx
jmp 0x547254
xor esi, esi
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x18]
sub eax, ecx
cmp esi, eax
jbe 0x547272
push esi
push edx
lea ecx, [esp + 0x14]
call fcn.0041214d
jmp 0x54796e
test esi, esi
je 0x54796e
push esi
push edx
push ecx
call sub.VCRUNTIME140.dll_memcpy
add esp, 0xc
add dword [esp + 0x18], esi
jmp 0x54796e
mov eax, dword [esp + 0x17c]
mov esi, dword [esp + 0x174]
mov ebx, dword [esp + 0x2c]
mov ecx, ebx
mov dword [esp + 0x38], eax
mov eax, dword [esp + 0x180]
push 0
mov dword [esp + 0x34], eax
lea eax, [esp + 0x58]
push esi
push eax
call fcn.004019a6
cmp byte [esp + 0x58], 0
je 0x547b12
mov ecx, dword [esp + 0x80]
cmp ecx, dword [esp + 0x84]
jb 0x5472ee
push 0
lea ecx, [esp + 0x80]
call fcn.00413c14
mov ecx, dword [esp + 0x80]
shl ecx, 5
add ecx, dword [esp + 0x7c]
push 0
push 0
push 0
mov dword [ecx], 0
lea eax, [ecx + 0x10]
mov dword [ecx + 4], eax
mov dword [ecx + 8], 0
mov dword [ecx + 0xc], 0x10
mov ecx, dword [esp + 0x8c]
mov eax, dword [esp + 0x88]
inc ecx
mov dword [esp + 0x8c], ecx
add eax, 0xffffffe4
shl ecx, 5
add eax, ecx
mov byte [esp + 0x28], 0
lea ecx, [esp + 0x18]
mov dword [esp + 0x2c], 0
mov dword [esp + 0x30], 1
mov dword [esp + 0x24], 0
mov dword [esp + 0x20], 0
mov dword [esp + 0x1c], 0
mov dword [esp + 0x18], 0x9251c4
mov dword [esp + 0x34], eax
call fcn.0040826f
mov eax, dword [esp + 0x54]
lea ecx, [eax + eax*2]
mov eax, dword [ebx]
mov edx, dword [eax + ecx*8]
add edx, dword [ebx + 0x28]
je 0x54739b
mov esi, edx
lea ecx, [esi + 1]
nop dword [eax + eax]
mov al, byte [esi]
inc esi
test al, al
jne 0x547390
sub esi, ecx
jmp 0x54739d
xor esi, esi
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x18]
sub eax, ecx
cmp esi, eax
jbe 0x5473b8
push esi
push edx
lea ecx, [esp + 0x14]
call fcn.0041214d
jmp 0x5473cb
test esi, esi
je 0x5473cb
push esi
push edx
push ecx
call sub.VCRUNTIME140.dll_memcpy
add esp, 0xc
add dword [esp + 0x18], esi
mov ecx, dword [esp + 0x38]
mov eax, ecx
mov edx, dword [esp + 0x30]
or eax, edx
je 0x54796e
mov dword [esp + 0x60], str._lld
lea eax, [esp + 0x5c]
mov dword [esp + 0x5c], 0x931e58
mov dword [esp + 0x64], ecx
mov dword [esp + 0x68], edx
jmp 0x547964
mov ecx, dword [esp + 0x174]
add ecx, dword [esp + 0x16c]
mov eax, dword [esp + 0x178]
adc eax, dword [esp + 0x170]
push eax
push ecx
push edx
lea ecx, [esp + 0x114]
call fcn.004031a7
cmp byte [esp + 0x168], 0
mov edx, dword [esp + 0x154]
je 0x547447
mov eax, dword [edx]
xor esi, esi
mov ecx, dword [edx + 4]
mov dword [esp + 0x30], eax
jmp 0x547455
mov ecx, dword [esp + 0x16c]
mov esi, dword [esp + 0x170]
mov dword [esp + 0x160], esi
mov dword [esp + 0x15c], ecx
mov eax, dword [edx]
mov dword [esp + 0x30], eax
test esi, esi
ja 0x5474ab
jb 0x547474
cmp ecx, dword [edx + 4]
jae 0x5474ab
movzx eax, word [edx + 0xd]
movq xmm0, qword [edx]
push eax
movzx eax, byte [edx + 0xc]
push esi
push ecx
push eax
mov eax, dword [edx + 8]
sub esp, 0xc
mov ecx, esp
movq qword [ecx], xmm0
mov dword [ecx + 8], eax
lea ecx, [esp + 0x180]
call fcn.00415811
mov byte [esp + 0x168], 0
test al, al
jne 0x5474b3
mov byte [esp + 0x168], 1
mov ecx, dword [esp + 0x80]
cmp ecx, dword [esp + 0x84]
jb 0x5474d8
push 0
lea ecx, [esp + 0x80]
call fcn.00413c14
mov ecx, dword [esp + 0x80]
shl ecx, 5
add ecx, dword [esp + 0x7c]
push 0
push 0
push 0
mov dword [ecx], 0
lea eax, [ecx + 0x10]
mov dword [ecx + 4], eax
mov dword [ecx + 8], 0
mov dword [ecx + 0xc], 0x10
mov ecx, dword [esp + 0x8c]
mov eax, dword [esp + 0x88]
inc ecx
mov dword [esp + 0x8c], ecx
add eax, 0xffffffe4
shl ecx, 5
add eax, ecx
mov byte [esp + 0x28], 0
lea ecx, [esp + 0x18]
mov dword [esp + 0x2c], 0
mov dword [esp + 0x30], 1
mov dword [esp + 0x24], 0
mov dword [esp + 0x20], 0
mov dword [esp + 0x1c], 0
mov dword [esp + 0x18], 0x9251c4
mov dword [esp + 0x34], eax
call fcn.0040826f
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x18]
sub eax, ecx
cmp eax, 6
jae 0x547580
push 6
push str.entry_
lea ecx, [esp + 0x14]
call fcn.0041214d
jmp 0x54759b
mov eax, dword [str.entry_]
mov dword [ecx], eax
mov eax, dword [esp + 0x18]
mov cx, word [0x935a1c]
mov word [eax + 4], cx
add dword [esp + 0x18], 6
push dword [esp + 0x2c]
movups xmm0, xmmword [esp + 0x10c]
sub esp, 0x40
mov eax, esp
sub esp, 0x40
movups xmmword [eax], xmm0
movups xmm0, xmmword [esp + 0x19c]
movups xmmword [eax + 0x10], xmm0
movups xmm0, xmmword [esp + 0x1ac]
movups xmmword [eax + 0x20], xmm0
movups xmm0, xmmword [esp + 0x1bc]
movups xmmword [eax + 0x30], xmm0
mov eax, esp
movups xmm0, xmmword [esp + 0x1d8]
movups xmmword [eax], xmm0
movups xmm0, xmmword [esp + 0x1e8]
movups xmmword [eax + 0x10], xmm0
movups xmm0, xmmword [esp + 0x1f8]
movups xmmword [eax + 0x20], xmm0
movups xmm0, xmmword [esp + 0x208]
movups xmmword [eax + 0x30], xmm0
lea eax, [esp + 0x90]
push eax
call fcn.005470b0
mov eax, dword [esp + 0x9c]
add esp, 0x88
mov ecx, dword [esp + 0x18]
sub eax, ecx
cmp eax, 1
jae 0x54763e
push 1
push 0x925880
lea ecx, [esp + 0x14]
call fcn.0041214d
jmp 0x547649
mov al, byte [0x925880]
mov byte [ecx], al
inc dword [esp + 0x18]
movups xmm0, xmmword [esp + 0x108]
lea ecx, [esp + 0xc]
movups xmmword [esp + 0x154], xmm0
movups xmm0, xmmword [esp + 0x118]
movups xmmword [esp + 0x164], xmm0
movups xmm0, xmmword [esp + 0x128]
movups xmmword [esp + 0x174], xmm0
movups xmm0, xmmword [esp + 0x138]
movups xmmword [esp + 0x184], xmm0
call fcn.00413223
jmp 0x5470fa
mov ecx, dword [esp + 0x80]
mov eax, dword [esp + 0x7c]
shl ecx, 5
mov dword [ecx + eax - 0x20], 1
jmp 0x547977
cmp bl, 0x50
jb 0x5477fa
cmp bl, 0x6f
ja 0x5477fa
mov eax, ecx
mov ecx, dword [esp + 0x2c]
cdq
mov esi, eax
mov ebx, edx
push 0
add esi, 0xffffffb0
lea eax, [esp + 0x40]
push esi
push eax
adc ebx, 0xffffffff
call fcn.004019a6
cmp byte [esp + 0x40], 0
je 0x547b5b
mov ecx, dword [esp + 0x80]
cmp ecx, dword [esp + 0x84]
jb 0x547712
push 0
lea ecx, [esp + 0x80]
call fcn.00413c14
mov ecx, dword [esp + 0x80]
shl ecx, 5
add ecx, dword [esp + 0x7c]
push 0
push 0
push 0
mov dword [ecx], 1
lea eax, [ecx + 0x10]
mov dword [ecx + 4], eax
mov dword [ecx + 8], 0
mov dword [ecx + 0xc], 0x10
mov ecx, dword [esp + 0x8c]
mov eax, dword [esp + 0x88]
inc ecx
mov dword [esp + 0x8c], ecx
add eax, 0xffffffe4
shl ecx, 5
add eax, ecx
mov byte [esp + 0x28], 0
lea ecx, [esp + 0x18]
mov dword [esp + 0x2c], 0
mov dword [esp + 0x30], 1
mov dword [esp + 0x24], 0
mov dword [esp + 0x20], 0
mov dword [esp + 0x1c], 0
mov dword [esp + 0x18], 0x9251c4
mov dword [esp + 0x34], eax
call fcn.0040826f
mov eax, dword [esp + 0x3c]
mov ebx, dword [esp + 0x2c]
lea ecx, [eax + eax*2]
mov eax, dword [ebx]
mov ecx, dword [eax + ecx*8]
add ecx, dword [ebx + 0x28]
je 0x5477be
mov esi, ecx
lea edx, [esi + 1]
mov al, byte [esi]
inc esi
test al, al
jne 0x5477b3
sub esi, edx
jmp 0x5477c0
xor esi, esi
mov eax, dword [esp + 0x14]
mov edx, dword [esp + 0x18]
sub eax, edx
cmp esi, eax
jbe 0x5477de
push esi
push ecx
lea ecx, [esp + 0x14]
call fcn.0041214d
jmp 0x54796e
test esi, esi
je 0x54796e
push esi
push ecx
push edx
call sub.VCRUNTIME140.dll_memcpy
add esp, 0xc
add dword [esp + 0x18], esi
jmp 0x54796e
cmp bl, 0x70
jb 0x547bcc
cmp bl, 0x8f
ja 0x547bcc
mov eax, dword [esp + 0x178]
lea esi, [ecx - 0x70]
mov ecx, dword [esp + 0x2c]
mov ebx, dword [esp + 0x174]
push 0
mov dword [esp + 0x34], eax
lea eax, [esp + 0x48]
push esi
push eax
call fcn.004019a6
cmp byte [esp + 0x48], 0
je 0x547b12
mov ecx, dword [esp + 0x80]
cmp ecx, dword [esp + 0x84]
jb 0x547862
push 0
lea ecx, [esp + 0x80]
call fcn.00413c14
mov ecx, dword [esp + 0x80]
shl ecx, 5
add ecx, dword [esp + 0x7c]
push 0
push 0
push 0
mov dword [ecx], 0
lea eax, [ecx + 0x10]
mov dword [ecx + 4], eax
mov dword [ecx + 8], 0
mov dword [ecx + 0xc], 0x10
mov ecx, dword [esp + 0x8c]
mov eax, dword [esp + 0x88]
inc ecx
mov dword [esp + 0x8c], ecx
add eax, 0xffffffe4
shl ecx, 5
add eax, ecx
mov byte [esp + 0x28], 0
lea ecx, [esp + 0x18]
mov dword [esp + 0x2c], 0
mov dword [esp + 0x30], 1
mov dword [esp + 0x24], 0
mov dword [esp + 0x20], 0
mov dword [esp + 0x1c], 0
mov dword [esp + 0x18], 0x9251c4
mov dword [esp + 0x34], eax
call fcn.0040826f
mov eax, dword [esp + 0x44]
mov edx, dword [esp + 0x2c]
lea ecx, [eax + eax*2]
mov eax, dword [edx]
mov ecx, dword [eax + ecx*8]
add ecx, dword [edx + 0x28]
je 0x54790e
mov esi, ecx
lea edx, [esi + 1]
mov al, byte [esi]
inc esi
test al, al
jne 0x547903
sub esi, edx
jmp 0x547910
xor esi, esi
mov eax, dword [esp + 0x14]
mov edx, dword [esp + 0x18]
sub eax, edx
cmp esi, eax
jbe 0x54792b
push esi
push ecx
lea ecx, [esp + 0x14]
call fcn.0041214d
jmp 0x54793e
test esi, esi
je 0x54793e
push esi
push ecx
push edx
call sub.VCRUNTIME140.dll_memcpy
add esp, 0xc
add dword [esp + 0x18], esi
mov ecx, dword [esp + 0x30]
mov eax, ebx
or eax, ecx
je 0x54796e
mov dword [esp + 0x70], str._lld
lea eax, [esp + 0x6c]
mov dword [esp + 0x6c], 0x931e58
mov dword [esp + 0x74], ebx
mov dword [esp + 0x78], ecx
push eax
lea ecx, [esp + 0x10]
call fcn.0040c69e
lea ecx, [esp + 0xc]
call fcn.00413223
cmp byte [esp + 0x168], 0
mov edx, dword [esp + 0x154]
je 0x5479a5
mov eax, dword [edx]
mov ecx, dword [edx + 4]
mov dword [esp + 0x30], eax
mov dword [esp + 0x15c], ecx
mov dword [esp + 0x160], 0
jmp 0x5479c1
mov eax, dword [esp + 0x16c]
mov ecx, dword [esp + 0x170]
mov dword [esp + 0x15c], eax
mov dword [esp + 0x160], ecx
cmp dword [esp + 0x160], 0
mov eax, dword [edx]
mov ecx, dword [edx + 4]
mov dword [esp + 0x30], eax
ja 0x547a2e
jb 0x5479df
cmp dword [esp + 0x15c], ecx
jae 0x547a2e
movzx eax, word [edx + 0xd]
movq xmm0, qword [edx]
push eax
push dword [esp + 0x164]
movzx eax, byte [edx + 0xc]
push dword [esp + 0x164]
push eax
mov eax, dword [edx + 8]
sub esp, 0xc
mov ecx, esp
movq qword [ecx], xmm0
mov dword [ecx + 8], eax
lea ecx, [esp + 0x180]
call fcn.00415811
mov edx, dword [esp + 0x154]
test al, al
je 0x547a2e
mov byte [esp + 0x168], 0
jmp 0x547101
mov byte [esp + 0x168], 1
jmp 0x547101
mov eax, dword [esp + 0x7c]
cmp dword [eax], 0
jne 0x547ab3
mov eax, dword [edi + 8]
mov ecx, dword [edi + 0xc]
sub eax, ecx
cmp eax, 1
jae 0x547a63
push 1
push 0x935948
mov ecx, edi
call fcn.0041214d
mov edi, eax
jmp 0x547a6d
mov al, byte [0x935948]
mov byte [ecx], al
inc dword [edi + 0xc]
mov eax, dword [esp + 0x7c]
mov ecx, edi
push dword [eax + 8]
push dword [eax + 4]
call fcn.0041214d
mov edx, eax
mov ecx, dword [edx + 8]
mov esi, dword [edx + 0xc]
sub ecx, esi
cmp ecx, 1
jae 0x547aa2
push 1
push 0x934ba0
mov ecx, edx
call fcn.0041214d
mov bl, 1
jmp 0x547ca6
mov al, byte [0x934ba0]
mov bl, 1
mov byte [esi], al
inc dword [edx + 0xc]
jmp 0x547ca6
mov eax, dword [esp + 0x7c]
mov ecx, edi
push dword [eax + 8]
push dword [eax + 4]
call fcn.0041214d
mov bl, 1
jmp 0x547ca6
mov eax, dword [edi + 8]
mov ecx, dword [edi + 0xc]
sub eax, ecx
cmp eax, 0x12
jae 0x547af1
push 0x12
push str._unknown_register
mov ecx, edi
call fcn.0041214d
push dword [esp + 0x30]
mov edi, eax
jmp 0x547b93
movups xmm0, xmmword [str._unknown_register]
push dword [esp + 0x30]
movups xmmword [ecx], xmm0
mov ax, word [0x935a04]
mov word [ecx + 0x10], ax
add dword [edi + 0xc], 0x12
jmp 0x547b93
mov eax, dword [edi + 8]
mov ecx, dword [edi + 0xc]
sub eax, ecx
cmp eax, 0x12
jae 0x547b39
push 0x12
push str._unknown_register
mov ecx, edi
call fcn.0041214d
mov edi, eax
push esi
mov ecx, edi
call fcn.0040517d
jmp 0x547b9b
movups xmm0, xmmword [str._unknown_register]
push esi
movups xmmword [ecx], xmm0
mov ax, word [0x935a04]
mov word [ecx + 0x10], ax
mov ecx, edi
add dword [edi + 0xc], 0x12
call fcn.0040517d
jmp 0x547b9b
mov eax, dword [edi + 8]
mov ecx, dword [edi + 0xc]
sub eax, ecx
cmp eax, 0x12
jae 0x547b7a
push 0x12
push str._unknown_register
mov ecx, edi
call fcn.0041214d
mov edi, eax
jmp 0x547b92
movups xmm0, xmmword [str._unknown_register]
movups xmmword [ecx], xmm0
mov ax, word [0x935a04]
mov word [ecx + 0x10], ax
add dword [edi + 0xc], 0x12
push ebx
push esi
mov ecx, edi
call fcn.0040b5be
mov edx, eax
mov ecx, dword [edx + 8]
mov esi, dword [edx + 0xc]
sub ecx, esi
cmp ecx, 1
jae 0x547bbd
push 1
push 0x935a0c
mov ecx, edx
call fcn.0041214d
jmp 0x547ca4
mov al, byte [0x935a0c]
mov byte [esi], al
inc dword [edx + 0xc]
jmp 0x547ca4
mov eax, dword [edi + 8]
mov ecx, dword [edi + 0xc]
sub eax, ecx
cmp eax, 0xc
jae 0x547beb
push 0xc
push str._unknown_op
mov ecx, edi
call fcn.0041214d
mov edi, eax
jmp 0x547c03
movq xmm0, qword [str._unknown_op]
movq qword [ecx], xmm0
mov eax, dword [0x935a28]
mov dword [ecx + 8], eax
add dword [edi + 0xc], 0xc
movzx ebx, bl
lea eax, [esp + 0x44]
push ebx
push eax
call fcn.0040765d
mov edx, dword [edi + 0xc]
add esp, 8
mov esi, dword [eax + 4]
mov ecx, dword [eax]
mov eax, dword [edi + 8]
sub eax, edx
cmp esi, eax
jbe 0x547c32
push esi
push ecx
mov ecx, edi
call fcn.0041214d
mov edi, eax
jmp 0x547c44
test esi, esi
je 0x547c44
push esi
push ecx
push edx
call sub.VCRUNTIME140.dll_memcpy
add esp, 0xc
add dword [edi + 0xc], esi
mov eax, dword [edi + 8]
mov ecx, dword [edi + 0xc]
sub eax, ecx
cmp eax, 2
jae 0x547c63
push 2
push 0x92fa88
mov ecx, edi
call fcn.0041214d
mov edi, eax
jmp 0x547c70
mov ax, word [0x92fa88]
mov word [ecx], ax
add dword [edi + 0xc], 2
push ebx
mov ecx, edi
call fcn.0040517d
mov edx, eax
mov ecx, dword [edx + 8]
mov esi, dword [edx + 0xc]
sub ecx, esi
cmp ecx, 2
jae 0x547c97
push 2
push 0x935a30
mov ecx, edx
call fcn.0041214d
jmp 0x547ca4
mov ax, word [0x935a30]
mov word [esi], ax
add dword [edx + 0xc], 2
xor bl, bl
mov ecx, dword [esp + 0x80]
mov eax, dword [esp + 0x7c]
shl ecx, 5
add ecx, eax
push ecx
push eax
call fcn.004047be
mov eax, dword [esp + 0x84]
lea ecx, [esp + 0x90]
add esp, 8
cmp eax, ecx
je 0x547cdc
push eax
call dword [sym.imp.api_ms_win_crt_heap_l1_1_0.dll_free]
add esp, 4
mov ecx, dword [esp + 0x148]
mov al, bl
pop edi
pop esi
pop ebx
xor ecx, esp
call fcn.004087b5
add esp, 0x140
ret