Function at 0x478630
Capabilities:
Allocate thread local storage
Resolve function by parsing pe exports

Disassembly:
push 0xffffffffffffffff
push 0x560aac
mov eax, dword fs:[0]
push eax
sub esp, 0x20c
mov eax, dword [0x63d20c]
xor eax, esp
mov dword [esp + 0x208], eax
push ebx
push ebp
push esi
push edi
mov eax, dword [0x63d20c]
xor eax, esp
push eax
lea eax, [esp + 0x220]
mov dword fs:[0], eax
mov eax, dword [esp + 0x230]
mov esi, ecx
mov dword [esp + 0x18], eax
call dword [sym.imp.KERNEL32.dll_TlsAlloc]
mov dword [esi + 0x18c], eax
call fcn.004ae930
push 0xc
call sub.MSVCR90.dll_void____cdecl_operator_new_unsigned_int_
add esp, 4
mov dword [esp + 0x14], eax
xor ebx, ebx
mov dword [esp + 0x228], ebx
cmp eax, ebx
je 0x4786ad
mov ecx, eax
call fcn.004ab230
jmp 0x4786af
xor eax, eax
or ebp, 0xffffffff
mov dword [esp + 0x228], ebp
mov dword [esi], eax
mov edi, 0xff
mov eax, dword [edi*4 + 0x623160]
cmp eax, ebx
je 0x4786d4
mov ecx, dword [esi]
push edi
push eax
call fcn.004ab270
sub edi, 1
jns 0x4786c0
push 8
call sub.MSVCR90.dll_void____cdecl_operator_new_unsigned_int_
add esp, 4
mov dword [esp + 0x14], eax
mov edi, 1
mov dword [esp + 0x228], edi
cmp eax, ebx
je 0x478700
mov ecx, eax
call fcn.0047ab30
jmp 0x478702
xor eax, eax
push 0xc
mov dword [esp + 0x22c], ebp
mov dword [esi + 4], eax
call sub.MSVCR90.dll_void____cdecl_operator_new_unsigned_int_
add esp, 4
mov dword [esp + 0x14], eax
mov dword [esp + 0x228], 2
cmp eax, ebx
je 0x478732
mov ecx, eax
call fcn.004ab230
jmp 0x478734
xor eax, eax
push 0x10
mov dword [esp + 0x22c], ebp
mov dword [esi + 8], eax
call sub.MSVCR90.dll_void____cdecl_operator_new_unsigned_int_
add esp, 4
mov dword [esp + 0x14], eax
mov dword [esp + 0x228], 3
cmp eax, ebx
je 0x478765
push edi
mov ecx, eax
call fcn.004ab450
jmp 0x478767
xor eax, eax
push 0x10
mov dword [esp + 0x22c], ebp
mov dword [esi + 0xc], eax
call sub.MSVCR90.dll_void____cdecl_operator_new_unsigned_int_
add esp, 4
mov dword [esp + 0x14], eax
mov dword [esp + 0x228], 4
cmp eax, ebx
je 0x478798
push edi
mov ecx, eax
call fcn.004ab450
jmp 0x47879a
xor eax, eax
push 0x10
mov dword [esp + 0x22c], ebp
mov dword [esi + 0x10], eax
call sub.MSVCR90.dll_void____cdecl_operator_new_unsigned_int_
add esp, 4
mov dword [esp + 0x14], eax
mov dword [esp + 0x228], 5
cmp eax, ebx
je 0x4787cb
push ebx
mov ecx, eax
call fcn.004ab450
jmp 0x4787cd
xor eax, eax
push 0x10
mov dword [esp + 0x22c], ebp
mov dword [esi + 0x14], eax
call sub.MSVCR90.dll_void____cdecl_operator_new_unsigned_int_
add esp, 4
mov dword [esp + 0x14], eax
mov dword [esp + 0x228], 6
cmp eax, ebx
je 0x4787fe
push edi
mov ecx, eax
call fcn.004ab450
jmp 0x478800
xor eax, eax
push 0x10
mov dword [esp + 0x22c], ebp
mov dword [esi + 0x18], eax
call sub.MSVCR90.dll_void____cdecl_operator_new_unsigned_int_
add esp, 4
mov dword [esp + 0x14], eax
mov dword [esp + 0x228], 7
cmp eax, ebx
je 0x478831
push edi
mov ecx, eax
call fcn.004ab450
jmp 0x478833
xor eax, eax
push 0x10
mov dword [esp + 0x22c], ebp
mov dword [esi + 0x1c], eax
call sub.MSVCR90.dll_void____cdecl_operator_new_unsigned_int_
add esp, 4
mov dword [esp + 0x14], eax
mov dword [esp + 0x228], 8
cmp eax, ebx
je 0x478863
mov ecx, eax
call fcn.00489de0
jmp 0x478865
xor eax, eax
push 0x10
mov dword [esp + 0x22c], ebp
mov dword [esi + 0x20], eax
call sub.MSVCR90.dll_void____cdecl_operator_new_unsigned_int_
add esp, 4
mov dword [esp + 0x14], eax
mov dword [esp + 0x228], 9
cmp eax, ebx
je 0x478896
push edi
mov ecx, eax
call fcn.004ab450
jmp 0x478898
xor eax, eax
push 0x10
mov dword [esp + 0x22c], ebp
mov dword [esi + 0x24], eax
call sub.MSVCR90.dll_void____cdecl_operator_new_unsigned_int_
add esp, 4
mov dword [esp + 0x14], eax
mov dword [esp + 0x228], 0xa
cmp eax, ebx
je 0x4788c8
mov ecx, eax
call fcn.00489de0
jmp 0x4788ca
xor eax, eax
push 0x10
mov dword [esp + 0x22c], ebp
mov dword [esi + 0x28], eax
call sub.MSVCR90.dll_void____cdecl_operator_new_unsigned_int_
add esp, 4
mov dword [esp + 0x14], eax
mov dword [esp + 0x228], 0xb
cmp eax, ebx
je 0x4788fb
push edi
mov ecx, eax
call fcn.004ab450
jmp 0x4788fd
xor eax, eax
push 0x10
mov dword [esp + 0x22c], ebp
mov dword [esi + 0x2c], eax
call sub.MSVCR90.dll_void____cdecl_operator_new_unsigned_int_
add esp, 4
mov dword [esp + 0x14], eax
mov dword [esp + 0x228], 0xc
cmp eax, ebx
je 0x47892e
push edi
mov ecx, eax
call fcn.004ab450
jmp 0x478930
xor eax, eax
push 4
mov dword [esp + 0x22c], ebp
mov dword [esi + 0x30], eax
call sub.MSVCR90.dll_void____cdecl_operator_new_unsigned_int_
add esp, 4
mov dword [esp + 0x14], eax
mov dword [esp + 0x228], 0xd
cmp eax, ebx
je 0x478960
mov ecx, eax
call fcn.00474a20
jmp 0x478962
xor eax, eax
mov dword [esi + 0x34], eax
mov ecx, 0x264
mov eax, 0x318
push 0x10
mov dword [esp + 0x22c], ebp
mov dword [esi + 0x3c], ecx
mov dword [esi + 0x40], eax
mov dword [esi + 0x48], ebx
mov dword [esi + 0x44], ebx
mov dword [esi + 0x4c], ecx
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
mov dword [esi + 0x38], ebx
call sub.MSVCR90.dll_void____cdecl_operator_new_unsigned_int_
add esp, 4
mov dword [esp + 0x14], eax
mov dword [esp + 0x228], 0xe
cmp eax, ebx
je 0x4789cb
push edi
mov ecx, eax
call fcn.004ab450
jmp 0x4789cd
xor eax, eax
push 0x10
mov dword [esp + 0x22c], ebp
mov dword [esi + 0x70], eax
call sub.MSVCR90.dll_void____cdecl_operator_new_unsigned_int_
add esp, 4
mov dword [esp + 0x14], eax
mov dword [esp + 0x228], 0xf
cmp eax, ebx
je 0x4789fd
mov ecx, eax
call fcn.00489de0
jmp 0x4789ff
xor eax, eax
push 0x10
mov dword [esp + 0x22c], ebp
mov dword [esi + 0x74], eax
call sub.MSVCR90.dll_void____cdecl_operator_new_unsigned_int_
add esp, 4
mov dword [esp + 0x14], eax
mov dword [esp + 0x228], 0x10
cmp eax, ebx
je 0x478a2f
mov ecx, eax
call fcn.00489de0
jmp 0x478a31
xor eax, eax
fldz
push 8
fstp qword [esi + 0xa8]
mov dword [esp + 0x22c], ebp
fld qword [0x5c2100]
mov dword [esi + 0x78], eax
fstp qword [esi + 0xb0]
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
mov dword [esi + 0xa0], ebx
mov dword [esi + 0xb8], ebx
mov dword [esi + 0xbc], 0x1312d00
mov dword [esi + 0xc0], ebx
mov dword [esi + 0xc4], ebx
call sub.MSVCR90.dll_void____cdecl_operator_new_unsigned_int_
add esp, 4
mov dword [esp + 0x14], eax
mov dword [esp + 0x228], 0x11
cmp eax, ebx
je 0x478acf
push str.Latin1
mov ecx, eax
call fcn.0047ab60
jmp 0x478ad1
xor eax, eax
push 8
mov dword [esp + 0x22c], ebp
mov dword [esi + 0xc8], eax
mov dword [esi + 0xcc], edi
mov dword [esi + 0xd0], edi
mov dword [esi + 0xd4], edi
call sub.MSVCR90.dll_void____cdecl_operator_new_unsigned_int_
add esp, 4
mov dword [esp + 0x14], eax
mov dword [esp + 0x228], 0x12
cmp eax, ebx
je 0x478b1b
push 0x5c20fc
mov ecx, eax
call fcn.0047ab60
jmp 0x478b1d
xor eax, eax
fld1
mov dword [esi + 0xd8], eax
fst qword [esi + 0x118]
mov eax, 0x5dc
fldz
push 8
fst qword [esi + 0x120]
mov dword [esp + 0x22c], ebp
fstp qword [esi + 0x130]
mov dword [esi + 0xdc], ebx
mov dword [esi + 0xe0], edi
mov dword [esi + 0xe4], eax
mov dword [esi + 0xe8], eax
fstp qword [esi + 0x128]
mov dword [esi + 0xec], 0xa
mov dword [esi + 0xf0], edi
mov dword [esi + 0xf4], edi
mov dword [esi + 0xf8], ebx
mov dword [esi + 0xfc], edi
mov dword [esi + 0x100], edi
mov dword [esi + 0x104], ebx
mov dword [esi + 0x108], edi
mov dword [esi + 0x10c], ebx
mov dword [esi + 0x110], ebp
mov dword [esi + 0x114], ebp
mov dword [esi + 0x138], ebx
mov dword [esi + 0x13c], edi
mov dword [esi + 0x140], edi
mov dword [esi + 0x144], ebx
call sub.MSVCR90.dll_void____cdecl_operator_new_unsigned_int_
add esp, 4
mov dword [esp + 0x14], eax
mov dword [esp + 0x228], 0x13
cmp eax, ebx
je 0x478bec
push 0x5c20f4
mov ecx, eax
call fcn.0047ab60
jmp 0x478bee
xor eax, eax
push 8
mov dword [esp + 0x22c], ebp
mov dword [esi + 0x148], eax
call sub.MSVCR90.dll_void____cdecl_operator_new_unsigned_int_
add esp, 4
mov dword [esp + 0x14], eax
mov dword [esp + 0x228], 0x14
cmp eax, ebx
je 0x478c26
push str.808080
mov ecx, eax
call fcn.0047ab60
jmp 0x478c28
xor eax, eax
push 8
mov dword [esp + 0x22c], ebp
mov dword [esi + 0x14c], eax
call sub.MSVCR90.dll_void____cdecl_operator_new_unsigned_int_
add esp, 4
mov dword [esp + 0x14], eax
mov dword [esp + 0x228], 0x15
cmp eax, ebx
je 0x478c60
push str.000000
mov ecx, eax
call fcn.0047ab60
jmp 0x478c62
xor eax, eax
mov ecx, esi
mov dword [esp + 0x228], ebp
mov dword [esi + 0x150], eax
mov dword [esi + 0x154], ebx
mov dword [esi + 0x158], ebx
mov dword [esi + 0x15c], edi
mov dword [esi + 0x160], ebx
mov dword [esi + 0x164], edi
mov dword [esi + 0x168], edi
call fcn.004751a0
push 0x10
call sub.MSVCR90.dll_void____cdecl_operator_new_unsigned_int_
add esp, 4
mov dword [esp + 0x14], eax
mov dword [esp + 0x228], 0x16
cmp eax, ebx
je 0x478cc0
mov ecx, eax
call fcn.00489de0
jmp 0x478cc2
xor eax, eax
push 8
mov dword [esp + 0x22c], ebp
mov dword [esi + 0x170], eax
mov dword [esi + 0x174], ebx
mov dword [esi + 0x178], ebx
call sub.MSVCR90.dll_void____cdecl_operator_new_unsigned_int_
add esp, 4
mov dword [esp + 0x14], eax
mov dword [esp + 0x228], 0x17
cmp eax, ebx
je 0x478d03
push 4
mov ecx, eax
call fcn.004ac4e0
jmp 0x478d05
xor eax, eax
push 8
mov dword [esp + 0x22c], ebp
mov dword [esi + 0x17c], eax
call sub.MSVCR90.dll_void____cdecl_operator_new_unsigned_int_
add esp, 4
mov dword [esp + 0x14], eax
mov dword [esp + 0x228], 0x18
cmp eax, ebx
je 0x478d3a
push 4
mov ecx, eax
call fcn.004ac4e0
jmp 0x478d3c
xor eax, eax
push 0x10
mov dword [esp + 0x22c], ebp
mov dword [esi + 0x180], eax
call sub.MSVCR90.dll_void____cdecl_operator_new_unsigned_int_
add esp, 4
mov dword [esp + 0x14], eax
mov dword [esp + 0x228], 0x19
cmp eax, ebx
je 0x478d6f
mov ecx, eax
call fcn.004add30
jmp 0x478d71
xor eax, eax
push 0x10
mov dword [esp + 0x22c], ebp
mov dword [esi + 0x184], eax
call sub.MSVCR90.dll_void____cdecl_operator_new_unsigned_int_
add esp, 4
mov dword [esp + 0x14], eax
mov dword [esp + 0x228], 0x1a
cmp eax, ebx
je 0x478da4
mov ecx, eax
call fcn.004add30
jmp 0x478da6
xor eax, eax
mov dword [esi + 0x188], eax
mov ecx, dword [0x616bac]
xor edi, edi
mov dword [esp + 0x228], ebp
cmp ecx, ebx
je 0x478de3
xor eax, eax
mov edx, dword [eax + 0x616ba8]
push edx
push ecx
mov ecx, dword [esi + 8]
call fcn.004ab270
inc edi
lea eax, [edi*8]
mov ecx, dword [eax + 0x616bac]
cmp ecx, ebx
jne 0x478dc1
push 0x20
call sub.MSVCR90.dll_void____cdecl_operator_new_unsigned_int_
add esp, 4
mov dword [esp + 0x14], eax
mov dword [esp + 0x228], 0x1b
cmp eax, ebx
je 0x478e16
push 0x3d
push 0x61f040
push ebx
push str.Latin1
mov ecx, eax
call fcn.004ab9c0
jmp 0x478e18
xor eax, eax
mov ecx, dword [eax]
push eax
push ecx
mov ecx, dword [esi + 0x14]
mov dword [esp + 0x230], ebp
call fcn.004ab7e0
push 0x20
call sub.MSVCR90.dll_void____cdecl_operator_new_unsigned_int_
add esp, 4
mov dword [esp + 0x14], eax
mov dword [esp + 0x228], 0x1c
cmp eax, ebx
je 0x478e61
push 0x83
push 0x61f410
push ebx
push str.ASCII7
mov ecx, eax
call fcn.004ab9c0
jmp 0x478e63
xor eax, eax
mov ecx, dword [eax]
push eax
push ecx
mov ecx, dword [esi + 0x14]
mov dword [esp + 0x230], ebp
call fcn.004ab7e0
push 0x20
call sub.MSVCR90.dll_void____cdecl_operator_new_unsigned_int_
add esp, 4
mov dword [esp + 0x14], eax
mov dword [esp + 0x228], 0x1d
cmp eax, ebx
je 0x478ea9
push 0x79
push 0x61fc40
push ebx
push str.Symbol
mov ecx, eax
call fcn.004ab9c0
jmp 0x478eab
xor eax, eax
mov ecx, dword [eax]
push eax
push ecx
mov ecx, dword [esi + 0x14]
mov dword [esp + 0x230], ebp
call fcn.004ab7e0
push 0x20
call sub.MSVCR90.dll_void____cdecl_operator_new_unsigned_int_
add esp, 4
mov dword [esp + 0x14], eax
mov dword [esp + 0x228], 0x1e
cmp eax, ebx
je 0x478ef1
push 0x1e
push 0x6203d0
push ebx
push str.ZapfDingbats
mov ecx, eax
call fcn.004ab9c0
jmp 0x478ef3
xor eax, eax
mov ecx, dword [eax]
push eax
push ecx
mov ecx, dword [esi + 0x14]
mov dword [esp + 0x230], ebp
call fcn.004ab7e0
push 0x20
call sub.MSVCR90.dll_void____cdecl_operator_new_unsigned_int_
add esp, 4
mov dword [esp + 0x14], eax
mov dword [esp + 0x228], 0x1f
cmp eax, ebx
je 0x478f38
push 0x474920
push 1
push str.UTF_8
mov ecx, eax
call fcn.004aba60
jmp 0x478f3a
xor eax, eax
mov ecx, dword [eax]
push eax
push ecx
mov ecx, dword [esi + 0x14]
mov dword [esp + 0x230], ebp
call fcn.004ab7e0
push 0x20
call sub.MSVCR90.dll_void____cdecl_operator_new_unsigned_int_
add esp, 4
mov dword [esp + 0x14], eax
mov dword [esp + 0x228], 0x20
cmp eax, ebx
je 0x478f7f
push 0x4749f0
push 1
push str.UCS_2
mov ecx, eax
call fcn.004aba60
jmp 0x478f81
xor eax, eax
mov ecx, dword [eax]
push eax
push ecx
mov ecx, dword [esi + 0x14]
mov dword [esp + 0x230], ebp
call fcn.004ab7e0
mov edi, dword [esp + 0x18]
cmp edi, ebx
je 0x478ffe
cmp byte [edi], bl
je 0x478ffe
push 8
call sub.MSVCR90.dll_void____cdecl_operator_new_unsigned_int_
add esp, 4
mov dword [esp + 0x14], eax
mov dword [esp + 0x228], 0x21
cmp eax, ebx
je 0x478fc9
push edi
mov ecx, eax
call fcn.0047ab60
mov edi, eax
jmp 0x478fcb
xor edi, edi
mov eax, dword [edi + 4]
push 0x5b6dcc
push eax
mov dword [esp + 0x230], ebp
call dword [sym.imp.MSVCR90.dll_fopen]
mov ebp, eax
add esp, 8
cmp ebp, ebx
jne 0x479099
mov ecx, edi
call fcn.0047ac70
push edi
call sub.MSVCR90.dll_void___cdecl_operator_delete_void__
add esp, 4
push str.xpdfrc
call fcn.00489710
push eax
call fcn.00489cf0
mov edi, eax
mov eax, dword [edi + 4]
push 0x5b6dcc
push eax
call dword [sym.imp.MSVCR90.dll_fopen]
mov ebp, eax
add esp, 0x10
cmp ebp, ebx
jne 0x479099
mov ecx, edi
call fcn.0047ac70
push edi
call sub.MSVCR90.dll_void___cdecl_operator_delete_void__
add esp, 4
push 0x200
lea eax, [esp + 0x20]
push eax
push ebx
call dword [sym.imp.KERNEL32.dll_GetModuleFileNameA]
cmp eax, ebx
jle 0x479054
cmp eax, 0x200
jb 0x479058
mov byte [esp + 0x1c], bl
lea ecx, [esp + 0x1c]
push ecx
call fcn.004897c0
mov edi, eax
push str.xpdfrc
push edi
call fcn.00489cf0
mov eax, dword [edi + 4]
push 0x5b6dcc
push eax
call dword [sym.imp.MSVCR90.dll_fopen]
mov ebp, eax
add esp, 0x14
cmp ebp, ebx
jne 0x479099
mov ecx, edi
call fcn.0047ac70
push edi
call sub.MSVCR90.dll_void___cdecl_operator_delete_void__
add esp, 4
jmp 0x4790b9
push ebp
push edi
mov ecx, esi
call fcn.00475fc0
mov ecx, edi
call fcn.0047ac70
push edi
call sub.MSVCR90.dll_void___cdecl_operator_delete_void__
push ebp
call dword [sym.imp.MSVCR90.dll_fclose]
add esp, 8
mov eax, esi
mov ecx, dword [esp + 0x220]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebp
pop ebx
mov ecx, dword [esp + 0x208]
xor ecx, esp
call fcn.00551b9a
add esp, 0x218
ret 4