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

Disassembly:
mov eax, 0x48ae80
call fcn.0046c6d8
sub esp, 0x204
push ebx
push esi
mov esi, ecx
push edi
mov edi, dword [sym.imp.KERNEL32.dll_InitializeCriticalSection]
lea eax, [esi + 0x160]
push eax
call edi
lea eax, [esi + 0x178]
push eax
call edi
lea eax, [esi + 0x190]
push eax
call edi
call fcn.004298ae
push 0xc
call fcn.0047f3d2
pop ecx
mov dword [ebp - 0x10], eax
xor ebx, ebx
cmp eax, ebx
mov dword [ebp - 4], ebx
je 0x40fca2
mov ecx, eax
call fcn.0042975b
jmp 0x40fca4
xor eax, eax
or dword [ebp - 4], 0xffffffff
mov dword [esi], eax
mov dword [ebp - 0x10], 0xff
mov edi, 0x50eb88
mov eax, dword [edi]
cmp eax, ebx
je 0x40fcc7
push dword [ebp - 0x10]
mov ecx, dword [esi]
push eax
call fcn.0042978b
dec dword [ebp - 0x10]
sub edi, 4
cmp edi, 0x50e78c
jge 0x40fcb6
push 8
call fcn.0047f3d2
pop ecx
mov dword [ebp - 0x10], eax
push 1
cmp eax, ebx
pop edi
mov dword [ebp - 4], edi
je 0x40fcf3
mov ecx, eax
call fcn.0040ed3a
jmp 0x40fcf5
xor eax, eax
or dword [ebp - 4], 0xffffffff
push 0xc
mov dword [esi + 4], eax
call fcn.0047f3d2
pop ecx
mov ecx, eax
mov dword [ebp - 0x10], ecx
cmp ecx, ebx
mov dword [ebp - 4], 2
je 0x40fd1b
call fcn.0042975b
jmp 0x40fd1d
xor eax, eax
or dword [ebp - 4], 0xffffffff
push 0x10
mov dword [esi + 8], eax
call fcn.0047f3d2
pop ecx
mov dword [ebp - 0x10], eax
cmp eax, ebx
mov dword [ebp - 4], 3
je 0x40fd44
push edi
mov ecx, eax
call fcn.0042781d
jmp 0x40fd46
xor eax, eax
or dword [ebp - 4], 0xffffffff
push 0x10
mov dword [esi + 0xc], eax
call fcn.0047f3d2
pop ecx
mov ecx, eax
mov dword [ebp - 0x10], ecx
cmp ecx, ebx
mov dword [ebp - 4], 4
je 0x40fd6d
push edi
call fcn.0042781d
jmp 0x40fd6f
xor eax, eax
or dword [ebp - 4], 0xffffffff
push 0x10
mov dword [esi + 0x10], eax
call fcn.0047f3d2
pop ecx
mov ecx, eax
mov dword [ebp - 0x10], ecx
cmp ecx, ebx
mov dword [ebp - 4], 5
je 0x40fd96
push ebx
call fcn.0042781d
jmp 0x40fd98
xor eax, eax
or dword [ebp - 4], 0xffffffff
push 0x10
mov dword [esi + 0x14], eax
call fcn.0047f3d2
pop ecx
mov ecx, eax
mov dword [ebp - 0x10], ecx
cmp ecx, ebx
mov dword [ebp - 4], 6
je 0x40fdbf
push edi
call fcn.0042781d
jmp 0x40fdc1
xor eax, eax
or dword [ebp - 4], 0xffffffff
push 0x10
mov dword [esi + 0x18], eax
call fcn.0047f3d2
pop ecx
mov ecx, eax
mov dword [ebp - 0x10], ecx
cmp ecx, ebx
mov dword [ebp - 4], 7
je 0x40fde8
push edi
call fcn.0042781d
jmp 0x40fdea
xor eax, eax
or dword [ebp - 4], 0xffffffff
push 0x10
mov dword [esi + 0x1c], eax
call fcn.0047f3d2
pop ecx
mov ecx, eax
mov dword [ebp - 0x10], ecx
cmp ecx, ebx
mov dword [ebp - 4], 8
je 0x40fe10
call fcn.0042717c
jmp 0x40fe12
xor eax, eax
or dword [ebp - 4], 0xffffffff
push 0x10
mov dword [esi + 0x20], eax
call fcn.0047f3d2
pop ecx
mov ecx, eax
mov dword [ebp - 0x10], ecx
cmp ecx, ebx
mov dword [ebp - 4], 9
je 0x40fe39
push edi
call fcn.0042781d
jmp 0x40fe3b
xor eax, eax
or dword [ebp - 4], 0xffffffff
push 0x10
mov dword [esi + 0x24], eax
call fcn.0047f3d2
pop ecx
mov ecx, eax
mov dword [ebp - 0x10], ecx
cmp ecx, ebx
mov dword [ebp - 4], 0xa
je 0x40fe61
call fcn.0042717c
jmp 0x40fe63
xor eax, eax
or dword [ebp - 4], 0xffffffff
push 0x10
mov dword [esi + 0x28], eax
call fcn.0047f3d2
pop ecx
mov ecx, eax
mov dword [ebp - 0x10], ecx
cmp ecx, ebx
mov dword [ebp - 4], 0xb
je 0x40fe8a
push edi
call fcn.0042781d
jmp 0x40fe8c
xor eax, eax
or dword [ebp - 4], 0xffffffff
push 0x10
mov dword [esi + 0x2c], eax
call fcn.0047f3d2
pop ecx
mov ecx, eax
mov dword [ebp - 0x10], ecx
cmp ecx, ebx
mov dword [ebp - 4], 0xc
je 0x40feb3
push edi
call fcn.0042781d
jmp 0x40feb5
xor eax, eax
or dword [ebp - 4], 0xffffffff
push 4
mov dword [esi + 0x30], eax
call fcn.0047f3d2
pop ecx
mov ecx, eax
mov dword [ebp - 0x10], ecx
cmp ecx, ebx
mov dword [ebp - 4], 0xd
je 0x40fedb
call fcn.0040fa95
jmp 0x40fedd
xor eax, eax
mov dword [esi + 0x34], eax
mov dword [esi + 0x3c], 0x264
mov dword [esi + 0x40], 0x318
mov dword [esi + 0x48], ebx
mov dword [esi + 0x44], ebx
mov eax, dword [esi + 0x3c]
mov dword [esi + 0x4c], eax
mov eax, dword [esi + 0x40]
or dword [ebp - 4], 0xffffffff
mov dword [esi + 0x50], eax
mov dword [esi + 0x54], edi
mov dword [esi + 0x58], ebx
mov dword [esi + 0x5c], ebx
mov dword [esi + 0x60], edi
mov dword [esi + 0x64], edi
mov dword [esi + 0x68], ebx
mov dword [esi + 0x6c], 2
push 0x10
mov dword [esi + 0x38], ebx
call fcn.0047f3d2
pop ecx
mov ecx, eax
mov dword [ebp - 0x10], ecx
cmp ecx, ebx
mov dword [ebp - 4], 0xe
je 0x40ff40
push edi
call fcn.0042781d
jmp 0x40ff42
xor eax, eax
or dword [ebp - 4], 0xffffffff
push 0x10
mov dword [esi + 0x70], eax
call fcn.0047f3d2
pop ecx
mov ecx, eax
mov dword [ebp - 0x10], ecx
cmp ecx, ebx
mov dword [ebp - 4], 0xf
je 0x40ff68
call fcn.0042717c
jmp 0x40ff6a
xor eax, eax
or dword [ebp - 4], 0xffffffff
push 0x10
mov dword [esi + 0x74], eax
call fcn.0047f3d2
pop ecx
mov ecx, eax
mov dword [ebp - 0x10], ecx
cmp ecx, ebx
mov dword [ebp - 4], 0x10
je 0x40ff90
call fcn.0042717c
jmp 0x40ff92
xor eax, eax
mov dword [esi + 0x78], eax
mov dword [esi + 0x7c], edi
mov dword [esi + 0x80], edi
mov dword [esi + 0x84], edi
mov dword [esi + 0x88], edi
mov dword [esi + 0x8c], ebx
mov dword [esi + 0x90], ebx
mov dword [esi + 0x94], ebx
mov dword [esi + 0x98], ebx
mov dword [esi + 0x9c], edi
fldz
mov dword [esi + 0xa0], ebx
or dword [ebp - 4], 0xffffffff
fstp qword [esi + 0xa8]
fld qword [0x48ee18]
push 8
fstp qword [esi + 0xb0]
mov dword [esi + 0xb8], ebx
mov dword [esi + 0xbc], 0x1312d00
mov dword [esi + 0xc0], ebx
call fcn.0047f3d2
pop ecx
mov ecx, eax
mov dword [ebp - 0x10], ecx
cmp ecx, ebx
mov dword [ebp - 4], 0x11
je 0x410020
push str.Latin1
call fcn.0040ee20
jmp 0x410022
xor eax, eax
or dword [ebp - 4], 0xffffffff
mov dword [esi + 0xc4], eax
mov dword [esi + 0xc8], edi
push 8
mov dword [esi + 0xcc], edi
mov dword [esi + 0xd0], edi
call fcn.0047f3d2
pop ecx
mov ecx, eax
mov dword [ebp - 0x10], ecx
cmp ecx, ebx
mov dword [ebp - 4], 0x12
je 0x410062
push 0x508ee4
call fcn.0040ee20
jmp 0x410064
xor eax, eax
fld1
or dword [ebp - 4], 0xffffffff
or dword [esi + 0xf8], 0xffffffff
fstp qword [esi + 0x100]
fldz
or dword [esi + 0xfc], 0xffffffff
mov ecx, esi
fstp qword [esi + 0x108]
fld1
mov dword [esi + 0xd4], eax
mov dword [esi + 0xd8], ebx
fstp qword [esi + 0x110]
fldz
mov dword [esi + 0xdc], edi
mov dword [esi + 0xe0], ebx
fstp qword [esi + 0x118]
mov dword [esi + 0xe4], edi
mov dword [esi + 0xe8], edi
mov dword [esi + 0xec], ebx
mov dword [esi + 0xf0], edi
mov dword [esi + 0xf4], ebx
mov dword [esi + 0x120], edi
mov dword [esi + 0x124], ebx
mov dword [esi + 0x128], ebx
mov dword [esi + 0x12c], ebx
mov dword [esi + 0x130], ebx
mov dword [esi + 0x134], edi
mov dword [esi + 0x138], ebx
mov dword [esi + 0x13c], edi
mov dword [esi + 0x140], edi
call fcn.0041058f
push 8
mov dword [esi + 0x148], ebx
mov dword [esi + 0x14c], ebx
call fcn.0047f3d2
pop ecx
mov dword [ebp - 0x10], eax
cmp eax, ebx
mov dword [ebp - 4], 0x13
je 0x410136
push 4
mov ecx, eax
call fcn.0042966f
jmp 0x410138
xor eax, eax
or dword [ebp - 4], 0xffffffff
push 8
mov dword [esi + 0x150], eax
call fcn.0047f3d2
pop ecx
mov ecx, eax
mov dword [ebp - 0x10], ecx
cmp ecx, ebx
mov dword [ebp - 4], 0x14
je 0x410163
push 4
call fcn.0042966f
jmp 0x410165
xor eax, eax
or dword [ebp - 4], 0xffffffff
push 0x10
mov dword [esi + 0x154], eax
call fcn.0047f3d2
pop ecx
mov ecx, eax
mov dword [ebp - 0x10], ecx
cmp ecx, ebx
mov dword [ebp - 4], 0x15
je 0x41018e
call fcn.004286d1
jmp 0x410190
xor eax, eax
or dword [ebp - 4], 0xffffffff
push 0x10
mov dword [esi + 0x158], eax
call fcn.0047f3d2
pop ecx
mov ecx, eax
mov dword [ebp - 0x10], ecx
cmp ecx, ebx
mov dword [ebp - 4], 0x16
je 0x4101b9
call fcn.004286d1
jmp 0x4101bb
xor eax, eax
or dword [ebp - 4], 0xffffffff
mov dword [esi + 0x15c], eax
mov eax, dword [0x4f08cc]
cmp eax, ebx
je 0x4101f1
mov dword [ebp - 0x10], 0x4f08cc
mov ecx, dword [ebp - 0x10]
push dword [ecx - 4]
mov ecx, dword [esi + 8]
push eax
call fcn.0042978b
add dword [ebp - 0x10], 8
mov eax, dword [ebp - 0x10]
mov eax, dword [eax]
cmp eax, ebx
jne 0x4101d5
push 0x38
call fcn.0047f3d2
pop ecx
mov dword [ebp - 0x10], eax
cmp eax, ebx
mov dword [ebp - 4], 0x17
je 0x41021d
push 0x3c
push 0x4f8d60
push ebx
push str.Latin1
mov ecx, eax
call fcn.00427740
jmp 0x41021f
xor eax, eax
mov ecx, dword [eax]
or dword [ebp - 4], 0xffffffff
push eax
push ecx
mov ecx, dword [esi + 0x14]
call fcn.004278ad
push 0x38
call fcn.0047f3d2
pop ecx
mov ecx, eax
mov dword [ebp - 0x10], ecx
cmp ecx, ebx
mov dword [ebp - 4], 0x18
je 0x41025e
push 0x83
push 0x4f9120
push ebx
push str.ASCII7
call fcn.00427740
jmp 0x410260
xor eax, eax
mov ecx, dword [eax]
or dword [ebp - 4], 0xffffffff
push eax
push ecx
mov ecx, dword [esi + 0x14]
call fcn.004278ad
push 0x38
call fcn.0047f3d2
pop ecx
mov ecx, eax
mov dword [ebp - 0x10], ecx
cmp ecx, ebx
mov dword [ebp - 4], 0x19
je 0x41029c
push 0x79
push 0x4f9950
push ebx
push str.Symbol
call fcn.00427740
jmp 0x41029e
xor eax, eax
mov ecx, dword [eax]
or dword [ebp - 4], 0xffffffff
push eax
push ecx
mov ecx, dword [esi + 0x14]
call fcn.004278ad
push 0x38
call fcn.0047f3d2
pop ecx
mov ecx, eax
mov dword [ebp - 0x10], ecx
cmp ecx, ebx
mov dword [ebp - 4], 0x1a
je 0x4102da
push 0x1e
push 0x4fa0e0
push ebx
push str.ZapfDingbats
call fcn.00427740
jmp 0x4102dc
xor eax, eax
mov ecx, dword [eax]
or dword [ebp - 4], 0xffffffff
push eax
push ecx
mov ecx, dword [esi + 0x14]
call fcn.004278ad
push 0x38
call fcn.0047f3d2
pop ecx
mov ecx, eax
mov dword [ebp - 0x10], ecx
cmp ecx, ebx
mov dword [ebp - 4], 0x1b
je 0x410316
push 0x4104a4
push edi
push str.UTF_8
call fcn.004277af
jmp 0x410318
xor eax, eax
mov ecx, dword [eax]
or dword [ebp - 4], 0xffffffff
push eax
push ecx
mov ecx, dword [esi + 0x14]
call fcn.004278ad
push 0x38
call fcn.0047f3d2
pop ecx
mov ecx, eax
mov dword [ebp - 0x10], ecx
cmp ecx, ebx
mov dword [ebp - 4], 0x1c
je 0x410352
push 0x410567
push edi
push str.UCS_2
call fcn.004277af
jmp 0x410354
xor eax, eax
mov ecx, dword [eax]
or dword [ebp - 4], 0xffffffff
push eax
push ecx
mov ecx, dword [esi + 0x14]
call fcn.004278ad
mov edi, dword [ebp + 8]
cmp edi, ebx
je 0x4103c7
cmp byte [edi], bl
je 0x4103c7
push 8
call fcn.0047f3d2
pop ecx
mov dword [ebp + 8], eax
cmp eax, ebx
mov dword [ebp - 4], 0x1d
je 0x410391
push edi
mov ecx, eax
call fcn.0040ee20
mov edi, eax
jmp 0x410393
xor edi, edi
mov eax, dword [edi + 4]
or dword [ebp - 4], 0xffffffff
push 0x49d4a8
push eax
mov dword [ebp + 8], edi
call fcn.0046b5ef
pop ecx
cmp eax, ebx
pop ecx
mov dword [ebp - 0x10], eax
jne 0x41046b
cmp edi, ebx
je 0x4103c7
mov ecx, edi
call fcn.0040ef86
push edi
call fcn.0047f3fb
pop ecx
push str.pdfrc
call fcn.004272bd
push eax
call fcn.00427323
mov edi, eax
push 0x49d4a8
mov eax, dword [edi + 4]
push eax
call fcn.0046b5ef
add esp, 0x10
cmp eax, ebx
mov dword [ebp - 0x10], eax
jne 0x41046b
cmp edi, ebx
je 0x410403
mov ecx, edi
call fcn.0040ef86
push edi
call fcn.0047f3fb
pop ecx
mov edi, 0x200
lea eax, [ebp - 0x210]
push edi
push eax
push ebx
call dword [sym.imp.KERNEL32.dll_GetModuleFileNameA]
cmp eax, ebx
jle 0x41041f
cmp eax, edi
jb 0x410425
mov byte [ebp - 0x210], bl
lea eax, [ebp - 0x210]
push eax
call fcn.004273c0
mov edi, eax
mov dword [esp], str.pdfrc
push edi
call fcn.00427323
mov eax, dword [edi + 4]
push 0x49d4a8
push eax
call fcn.0046b5ef
add esp, 0x10
cmp eax, ebx
mov dword [ebp - 0x10], eax
jne 0x41046b
cmp edi, ebx
je 0x410491
mov ecx, edi
call fcn.0040ef86
push edi
call fcn.0047f3fb
jmp 0x410490
push dword [ebp - 0x10]
mov ecx, esi
push edi
call fcn.00411205
cmp edi, ebx
je 0x410488
mov ecx, edi
call fcn.0040ef86
push edi
call fcn.0047f3fb
pop ecx
push dword [ebp - 0x10]
call fcn.0046b506
pop ecx
mov ecx, dword [ebp - 0xc]
mov eax, esi
pop edi
pop esi
pop ebx
mov dword fs:[0], ecx
leave
ret 4