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

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
and esp, 0xfffffff0
mov eax, 0x1190
call fcn.0042be30
mov eax, dword [ecx]
mov esi, ecx
cmp byte [eax], 0
jne 0x421634
mov ecx, dword [esi + 4]
cmp dword [ecx], 0x64
ja 0x421697
mov edi, dword [esi + 8]
lea ecx, [esp + 6]
mov ebx, dword [esi + 0xc]
mov byte [esp + 6], 0
mov byte [esp + 7], 0
mov dword [esp + 0x2c], edx
mov dword [esp + 0x74], ecx
mov dword [esp + 0x78], eax
lea eax, [esp + 7]
mov dword [esp + 0x7c], edi
mov dword [esp + 0x80], eax
mov eax, dword [esi + 0x10]
mov dword [esp + 0x84], ebx
mov dword [esp + 0x70], edi
mov dword [esp + 0x88], eax
mov dword [esp + 0x6c], eax
mov dword [esp + 0x8c], edx
call fcn.0041b750
test eax, eax
je 0x42169e
cmp byte [esp + 7], 0
je 0x421dbc
xor eax, eax
jmp 0x421e32
mov ecx, dword [esp + 0x2c]
mov dword [esp + 0x20], edx
mov dword [esp + 0x24], ebx
mov eax, dword [ecx]
xor eax, 1
or eax, dword [ecx + 4]
jne 0x421953
mov edi, dword [ecx + 8]
lea eax, [esp + 0x194]
push 0xff4
push 0
push eax
call fcn.0042c750
add esp, 0xc
mov ebx, dword [0x446970]
mov dword [esp + 0x1e0], 0x7d0
mov dword [esp + 0x190], 0x58
test ebx, ebx
jne 0x421711
push str.SymFromAddrW
push dword [0x446950]
call sub.KERNEL32.dll_GetProcAddress
test eax, eax
je 0x421e52
mov ebx, eax
mov dword [0x446970], eax
call sub.KERNEL32.dll_GetCurrentProcess
lea ecx, [esp + 0x190]
mov dword [esp + 0x94], 0
mov dword [esp + 0x90], 0
lea edx, [esp + 0x90]
push ecx
mov dword [esp + 0x14], edx
push edx
push 0
mov dword [esp + 0x34], edi
push edi
push eax
call ebx
cmp eax, 1
jne 0x421ca4
mov ecx, dword [esp + 0x1e0]
mov eax, dword [esp + 0x1dc]
xorps xmm0, xmm0
mov dword [esp + 0x1c], esi
lea esi, [esp + 0x1e4]
mov dword [esp + 8], 0
movaps xmmword [esp + 0x180], xmm0
movaps xmmword [esp + 0x170], xmm0
movaps xmmword [esp + 0x160], xmm0
movaps xmmword [esp + 0x150], xmm0
movaps xmmword [esp + 0x140], xmm0
movaps xmmword [esp + 0x130], xmm0
movaps xmmword [esp + 0x120], xmm0
movaps xmmword [esp + 0x110], xmm0
movaps xmmword [esp + 0x100], xmm0
movaps xmmword [esp + 0xf0], xmm0
movaps xmmword [esp + 0xe0], xmm0
movaps xmmword [esp + 0xd0], xmm0
movaps xmmword [esp + 0xc0], xmm0
movaps xmmword [esp + 0xb0], xmm0
movaps xmmword [esp + 0xa0], xmm0
movaps xmmword [esp + 0x90], xmm0
dec ecx
cmp eax, ecx
cmovbe ecx, eax
mov eax, pe_nt_image_headers32
xor edx, edx
lea ecx, [esp + ecx*2 + 0x1e4]
mov dword [esp + 0x18], ecx
test dx, dx
je 0x421830
nop word cs:[eax + eax]
nop
mov ebx, edx
shr ebx, 0x10
jmp 0x42183e
cmp esi, ecx
je 0x421bf1
movzx ebx, word [esi]
add esi, 2
mov ecx, ebx
and edx, 0xffff0000
and ecx, 0xf800
mov dword [esp + 0x14], edx
cmp ecx, 0xd800
jne 0x4218c0
movzx edi, bx
xor ecx, ecx
mov edx, 1
cmp edi, 0xdbff
ja 0x4218c5
mov edi, dword [esp + 0x18]
cmp esi, edi
je 0x42193b
movzx edi, word [esi]
add esi, 2
mov dword [esp + 0xc], edi
and edi, 0xfc00
cmp edi, 0xdc00
jne 0x42193f
mov ecx, dword [esp + 0xc]
add ebx, 0x2800
movzx edx, bx
shl edx, 0xa
add ecx, 0x2400
movzx ecx, cx
or ecx, edx
add ecx, 0x10000
jmp 0x4218c3
movzx ecx, bx
xor edx, edx
test dl, 1
mov edi, 0xfffd
mov ebx, 1
cmovne ecx, edi
cmp ecx, 0x80
jb 0x4218f8
mov ebx, 2
cmp ecx, 0x800
jb 0x4218f8
cmp ecx, 0x10000
mov ebx, 4
sbb ebx, 0
mov edi, eax
sub edi, ebx
jbe 0x421bf1
mov dword [esp + 0xc], esi
mov esi, dword [esp + 0x10]
mov edx, esi
push eax
call fcn.0041b8c0
add esp, 4
add esi, ebx
add dword [esp + 8], ebx
mov ecx, dword [esp + 0x18]
mov edx, dword [esp + 0x14]
mov eax, edi
mov dword [esp + 0x10], esi
mov esi, dword [esp + 0xc]
test dx, dx
jne 0x421820
jmp 0x421830
mov esi, edi
jmp 0x4218c5
movzx edi, word [esp + 0xc]
shl edi, 0x10
or edi, 1
mov dword [esp + 0x14], edi
jmp 0x4218c5
mov dword [esp + 0x1c], esi
lea eax, [esp + 0x194]
push 0xff4
push 0
push eax
call fcn.0042c750
add esp, 0xc
mov esi, dword [0x44697c]
mov dword [esp + 0x1e0], 0x7d0
mov dword [esp + 0x190], 0x58
test esi, esi
jne 0x4219ad
push str.SymFromInlineContextW
push dword [0x446950]
call sub.KERNEL32.dll_GetProcAddress
test eax, eax
je 0x421e52
mov esi, eax
mov dword [0x44697c], eax
call sub.KERNEL32.dll_GetCurrentProcess
mov ecx, dword [esp + 0x2c]
lea ebx, [esp + 0x190]
mov dword [esp + 0x14], 0
mov dword [esp + 0x94], 0
mov dword [esp + 0x90], 0
mov edx, dword [ecx + 8]
mov edi, dword [ecx + 0x114]
xor ecx, ecx
sub edx, 1
cmovb edx, ecx
lea ecx, [esp + 0x90]
push ebx
mov dword [esp + 0x10], ecx
push ecx
mov dword [esp + 0x70], edi
push edi
push 0
mov dword [esp + 0x38], edx
push edx
push eax
call esi
cmp eax, 1
jne 0x421ca0
mov ecx, dword [esp + 0x1e0]
mov eax, dword [esp + 0x1dc]
xorps xmm0, xmm0
lea edx, [esp + 0x1e4]
mov ebx, pe_nt_image_headers32
mov dword [esp + 8], 0
movaps xmmword [esp + 0x180], xmm0
movaps xmmword [esp + 0x170], xmm0
movaps xmmword [esp + 0x160], xmm0
movaps xmmword [esp + 0x150], xmm0
movaps xmmword [esp + 0x140], xmm0
movaps xmmword [esp + 0x130], xmm0
movaps xmmword [esp + 0x120], xmm0
movaps xmmword [esp + 0x110], xmm0
movaps xmmword [esp + 0x100], xmm0
movaps xmmword [esp + 0xf0], xmm0
movaps xmmword [esp + 0xe0], xmm0
movaps xmmword [esp + 0xd0], xmm0
movaps xmmword [esp + 0xc0], xmm0
movaps xmmword [esp + 0xb0], xmm0
movaps xmmword [esp + 0xa0], xmm0
movaps xmmword [esp + 0x90], xmm0
dec ecx
cmp eax, ecx
cmovbe ecx, eax
lea esi, [esp + ecx*2 + 0x1e4]
mov dword [esp + 0x18], esi
nop word [eax + eax]
mov ecx, dword [esp + 0x14]
test cx, cx
je 0x421ae0
mov esi, ecx
shr esi, 0x10
jmp 0x421af4
cmp edx, esi
je 0x421cad
mov ecx, edx
add edx, 2
movzx esi, word [ecx]
mov ecx, dword [esp + 0x14]
mov eax, esi
and ecx, 0xffff0000
mov dword [esp + 0x10], edx
and eax, 0xf800
mov dword [esp + 0x14], ecx
cmp eax, 0xd800
jne 0x421b70
movzx edi, si
xor ecx, ecx
mov edx, 1
cmp edi, 0xdbff
ja 0x421b75
mov edi, dword [esp + 0x10]
mov eax, dword [esp + 0x18]
cmp edi, eax
je 0x421bdc
movzx eax, word [edi]
add edi, 2
mov dword [esp + 0x10], edi
mov edi, eax
and edi, 0xfc00
cmp edi, 0xdc00
jne 0x421be2
add esi, 0x2800
lea ecx, [eax + 0x2400]
movzx edx, si
movzx ecx, cx
shl edx, 0xa
or ecx, edx
add ecx, 0x10000
jmp 0x421b73
movzx ecx, si
xor edx, edx
test dl, 1
mov eax, 0xfffd
mov esi, 1
cmovne ecx, eax
cmp ecx, 0x80
jb 0x421ba8
mov esi, 2
cmp ecx, 0x800
jb 0x421ba8
cmp ecx, 0x10000
mov esi, 4
sbb esi, 0
mov edi, ebx
sub edi, esi
jbe 0x421cad
mov eax, ebx
mov ebx, dword [esp + 0xc]
mov edx, ebx
push eax
call fcn.0041b8c0
add esp, 4
add ebx, esi
add dword [esp + 8], esi
mov edx, dword [esp + 0x10]
mov esi, dword [esp + 0x18]
mov dword [esp + 0xc], ebx
mov ebx, edi
jmp 0x421ad0
mov dword [esp + 0x10], eax
jmp 0x421b75
movzx esi, ax
shl esi, 0x10
or esi, 1
mov dword [esp + 0x14], esi
jmp 0x421b75
cmp dword [esp + 8], 0x101
jae 0x421e3a
mov edi, dword [0x446974]
mov ebx, dword [esp + 0x24]
mov esi, dword [esp + 0x28]
xorps xmm0, xmm0
mov dword [esp + 0x64], 0
mov dword [esp + 0x60], 0
movaps xmmword [esp + 0x50], xmm0
mov dword [esp + 0x50], 0x18
test edi, edi
jne 0x421c50
push str.SymGetLineFromAddrW64
push dword [0x446950]
call sub.KERNEL32.dll_GetProcAddress
test eax, eax
je 0x421e52
mov edi, eax
mov dword [0x446974], eax
call sub.KERNEL32.dll_GetCurrentProcess
lea ecx, [esp + 0x50]
mov dword [esp + 0x30], 0
lea edx, [esp + 0x30]
push ecx
push edx
push 0
push esi
push eax
call edi
cmp eax, 1
jne 0x421d62
mov eax, dword [esp + 0x58]
mov ecx, dword [esp + 0x5c]
mov edx, 0xffffffff
nop word cs:[eax + eax]
nop dword [eax]
cmp word [ecx + edx*2 + 2], 0
lea edx, [edx + 1]
jne 0x421c90
jmp 0x421d5b
mov esi, dword [esp + 0x1c]
mov ebx, dword [esp + 0x24]
jmp 0x421da7
cmp dword [esp + 8], 0x101
jae 0x421e3a
mov edi, dword [0x446980]
mov ebx, dword [esp + 0x24]
xorps xmm0, xmm0
mov dword [esp + 0x64], 0
mov dword [esp + 0x60], 0
movaps xmmword [esp + 0x50], xmm0
mov dword [esp + 0x50], 0x18
test edi, edi
jne 0x421d08
push str.SymGetLineFromInlineContextW
push dword [0x446950]
call sub.KERNEL32.dll_GetProcAddress
test eax, eax
je 0x421e52
mov edi, eax
mov dword [0x446980], eax
call sub.KERNEL32.dll_GetCurrentProcess
lea ecx, [esp + 0x50]
mov dword [esp + 0x30], 0
lea edx, [esp + 0x30]
push ecx
push edx
push 0
push 0
push dword [esp + 0x78]
push 0
push dword [esp + 0x40]
push eax
call edi
cmp eax, 1
jne 0x421d62
mov eax, dword [esp + 0x58]
mov ecx, dword [esp + 0x5c]
mov edx, 0xffffffff
nop word cs:[eax + eax]
nop dword [eax]
cmp word [ecx + edx*2 + 2], 0
lea edx, [edx + 1]
jne 0x421d50
mov esi, 1
jmp 0x421d64
xor esi, esi
lea edi, [esp + 0x90]
mov dword [esp + 0x30], edi
mov edi, dword [esp + 8]
mov dword [esp + 0x34], edi
mov edi, dword [esp + 0x1c8]
mov dword [esp + 0x38], edi
mov dword [esp + 0x3c], esi
mov dword [esp + 0x40], eax
mov dword [esp + 0x44], esi
mov dword [esp + 0x48], ecx
mov dword [esp + 0x4c], edx
lea ecx, [esp + 0x74]
lea edx, [esp + 0x30]
call fcn.00421e70
mov esi, dword [esp + 0x1c]
mov eax, dword [esp + 0x20]
push eax
call sub.KERNEL32.dll_ReleaseMutex
cmp byte [esp + 7], 0
jne 0x421697
cmp byte [esp + 6], 0
jne 0x421e27
mov eax, dword [esp + 0x70]
cmp byte [eax], 0
je 0x421e27
mov eax, dword [esp + 0x6c]
mov dword [esp + 0x198], 4
mov dword [esp + 0x90], 2
mov dword [esp + 0x30], eax
mov eax, dword [esp + 0x2c]
mov dword [esp + 0x34], 0
mov edx, dword [eax + 8]
sub esp, 4
mov edi, esi
lea esi, [esp + 0x194]
lea eax, [esp + 0x94]
lea ecx, [esp + 0x34]
push 0
push eax
push esi
mov esi, edi
call fcn.0041c010
add esp, 0x10
mov byte [ebx], al
mov eax, dword [esp + 0x30]
inc dword [eax + 4]
mov eax, dword [esi + 4]
inc dword [eax]
cmp byte [ebx], 0
sete al
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret
mov ecx, dword [esp + 8]
mov edx, pe_nt_image_headers32
push 0x43e86c
call fcn.00437e90
add esp, 4
ud2
mov ecx, 0x43f0d0
mov edx, 0x2b
push 0x43e950
call fcn.00437f00
add esp, 4
ud2