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

Disassembly:
push ebp
push edi
push esi
push ebx
sub esp, 0xfc
mov esi, dword [esp + 0x110]
mov dword [esp + 0x28], 0
mov eax, dword [esi]
mov edx, dword [eax + 0x290]
mov ebx, dword [edx + 0xb88]
mov dword [esp + 4], 0x4f7c40
mov eax, dword [eax + 0x60]
mov eax, dword [eax + 4]
mov dword [esp], eax
call sym._FT_Get_Module
test eax, eax
je 0x478c75
test ebx, ebx
je 0x478c75
mov edx, dword [ebx]
test edx, edx
je 0x478c75
mov dword [esp], eax
call edx
test eax, eax
mov dword [esp + 0x10], eax
je 0x478c75
mov eax, dword [esi]
lea edx, [esp + 0x28]
mov ebx, dword [eax + 0x290]
mov dword [esp + 8], edx
mov dword [esp + 4], 0x404
mov eax, dword [eax + 0x64]
mov dword [esp], eax
call sym._ft_mem_alloc
mov dword [esp + 0x1c], eax
mov eax, dword [esp + 0x28]
test eax, eax
mov dword [esp + 0x14], eax
je 0x477f40
add esp, 0xfc
pop ebx
pop esi
pop edi
pop ebp
ret
lea edi, [esp + 0x2c]
mov ecx, 0x31
rep stosd dword es:[edi], eax
movzx eax, byte [ebx + 0x5dc]
test eax, eax
mov byte [esp + 0x34], al
je 0x47804d
mov edx, dword [ebx + 0x5e0]
cmp eax, 1
mov word [esp + 0x38], dx
je 0x47804d
mov edx, dword [ebx + 0x5e4]
cmp eax, 2
mov word [esp + 0x3a], dx
je 0x47804d
mov edx, dword [ebx + 0x5e8]
cmp eax, 3
mov word [esp + 0x3c], dx
je 0x47804d
mov edx, dword [ebx + 0x5ec]
cmp eax, 4
mov word [esp + 0x3e], dx
je 0x47804d
mov edx, dword [ebx + 0x5f0]
cmp eax, 5
mov word [esp + 0x40], dx
je 0x47804d
mov edx, dword [ebx + 0x5f4]
cmp eax, 6
mov word [esp + 0x42], dx
je 0x47804d
mov edx, dword [ebx + 0x5f8]
cmp eax, 7
mov word [esp + 0x44], dx
je 0x47804d
mov edx, dword [ebx + 0x5fc]
cmp eax, 8
mov word [esp + 0x46], dx
je 0x47804d
mov edx, dword [ebx + 0x600]
cmp eax, 9
mov word [esp + 0x48], dx
je 0x47804d
mov edx, dword [ebx + 0x604]
cmp eax, 0xa
mov word [esp + 0x4a], dx
je 0x47804d
mov edx, dword [ebx + 0x608]
cmp eax, 0xb
mov word [esp + 0x4c], dx
je 0x47804d
mov edx, dword [ebx + 0x60c]
cmp eax, 0xc
mov word [esp + 0x4e], dx
je 0x47804d
mov edx, dword [ebx + 0x610]
cmp eax, 0xd
mov word [esp + 0x50], dx
je 0x47804d
mov eax, dword [ebx + 0x614]
mov word [esp + 0x52], ax
movzx eax, byte [ebx + 0x5dd]
test eax, eax
mov byte [esp + 0x35], al
je 0x4780ff
mov edx, dword [ebx + 0x618]
cmp eax, 1
mov word [esp + 0x54], dx
je 0x4780ff
mov edx, dword [ebx + 0x61c]
cmp eax, 2
mov word [esp + 0x56], dx
je 0x4780ff
mov edx, dword [ebx + 0x620]
cmp eax, 3
mov word [esp + 0x58], dx
je 0x4780ff
mov edx, dword [ebx + 0x624]
cmp eax, 4
mov word [esp + 0x5a], dx
je 0x4780ff
mov edx, dword [ebx + 0x628]
cmp eax, 5
mov word [esp + 0x5c], dx
je 0x4780ff
mov edx, dword [ebx + 0x62c]
cmp eax, 6
mov word [esp + 0x5e], dx
je 0x4780ff
mov edx, dword [ebx + 0x630]
cmp eax, 7
mov word [esp + 0x60], dx
je 0x4780ff
mov edx, dword [ebx + 0x634]
cmp eax, 8
mov word [esp + 0x62], dx
je 0x4780ff
mov edx, dword [ebx + 0x638]
cmp eax, 9
mov word [esp + 0x64], dx
je 0x4780ff
mov eax, dword [ebx + 0x63c]
mov word [esp + 0x66], ax
movzx eax, byte [ebx + 0x5de]
test eax, eax
mov byte [esp + 0x36], al
je 0x47820b
mov edx, dword [ebx + 0x640]
cmp eax, 1
mov word [esp + 0x68], dx
je 0x47820b
mov edx, dword [ebx + 0x644]
cmp eax, 2
mov word [esp + 0x6a], dx
je 0x47820b
mov edx, dword [ebx + 0x648]
cmp eax, 3
mov word [esp + 0x6c], dx
je 0x47820b
mov edx, dword [ebx + 0x64c]
cmp eax, 4
mov word [esp + 0x6e], dx
je 0x47820b
mov edx, dword [ebx + 0x650]
cmp eax, 5
mov word [esp + 0x70], dx
je 0x47820b
mov edx, dword [ebx + 0x654]
cmp eax, 6
mov word [esp + 0x72], dx
je 0x47820b
mov edx, dword [ebx + 0x658]
cmp eax, 7
mov word [esp + 0x74], dx
je 0x47820b
mov edx, dword [ebx + 0x65c]
cmp eax, 8
mov word [esp + 0x76], dx
je 0x47820b
mov edx, dword [ebx + 0x660]
cmp eax, 9
mov word [esp + 0x78], dx
je 0x47820b
mov edx, dword [ebx + 0x664]
cmp eax, 0xa
mov word [esp + 0x7a], dx
je 0x47820b
mov edx, dword [ebx + 0x668]
cmp eax, 0xb
mov word [esp + 0x7c], dx
je 0x47820b
mov edx, dword [ebx + 0x66c]
cmp eax, 0xc
mov word [esp + 0x7e], dx
je 0x47820b
mov edx, dword [ebx + 0x670]
cmp eax, 0xd
mov word [esp + 0x80], dx
je 0x47820b
mov eax, dword [ebx + 0x674]
mov word [esp + 0x82], ax
movzx eax, byte [ebx + 0x5df]
test eax, eax
mov byte [esp + 0x37], al
je 0x4782e3
mov edx, dword [ebx + 0x678]
cmp eax, 1
mov word [esp + 0x84], dx
je 0x4782e3
mov edx, dword [ebx + 0x67c]
cmp eax, 2
mov word [esp + 0x86], dx
je 0x4782e3
mov edx, dword [ebx + 0x680]
cmp eax, 3
mov word [esp + 0x88], dx
je 0x4782e3
mov edx, dword [ebx + 0x684]
cmp eax, 4
mov word [esp + 0x8a], dx
je 0x4782e3
mov edx, dword [ebx + 0x688]
cmp eax, 5
mov word [esp + 0x8c], dx
je 0x4782e3
mov edx, dword [ebx + 0x68c]
cmp eax, 6
mov word [esp + 0x8e], dx
je 0x4782e3
mov edx, dword [ebx + 0x690]
cmp eax, 7
mov word [esp + 0x90], dx
je 0x4782e3
mov edx, dword [ebx + 0x694]
cmp eax, 8
mov word [esp + 0x92], dx
je 0x4782e3
mov edx, dword [ebx + 0x698]
cmp eax, 9
mov word [esp + 0x94], dx
je 0x4782e3
mov eax, dword [ebx + 0x69c]
mov word [esp + 0x96], ax
mov eax, dword [ebx + 0x6a0]
mov dword [esp + 0x98], eax
mov eax, dword [ebx + 0x6a4]
mov dword [esp + 0x9c], eax
mov eax, dword [ebx + 0x6a8]
mov dword [esp + 0xa0], eax
mov eax, dword [ebx + 0x6ac]
mov word [esp + 0xa4], ax
mov eax, dword [ebx + 0x6b0]
mov word [esp + 0xa6], ax
movzx eax, byte [ebx + 0x6b4]
test eax, eax
mov byte [esp + 0xa8], al
je 0x478446
mov edx, dword [ebx + 0x6b8]
cmp eax, 1
mov word [esp + 0xac], dx
je 0x478446
mov edx, dword [ebx + 0x6bc]
cmp eax, 2
mov word [esp + 0xae], dx
je 0x478446
mov edx, dword [ebx + 0x6c0]
cmp eax, 3
mov word [esp + 0xb0], dx
je 0x478446
mov edx, dword [ebx + 0x6c4]
cmp eax, 4
mov word [esp + 0xb2], dx
je 0x478446
mov edx, dword [ebx + 0x6c8]
cmp eax, 5
mov word [esp + 0xb4], dx
je 0x478446
mov edx, dword [ebx + 0x6cc]
cmp eax, 6
mov word [esp + 0xb6], dx
je 0x478446
mov edx, dword [ebx + 0x6d0]
cmp eax, 7
mov word [esp + 0xb8], dx
je 0x478446
mov edx, dword [ebx + 0x6d4]
cmp eax, 8
mov word [esp + 0xba], dx
je 0x478446
mov edx, dword [ebx + 0x6d8]
cmp eax, 9
mov word [esp + 0xbc], dx
je 0x478446
mov edx, dword [ebx + 0x6dc]
cmp eax, 0xa
mov word [esp + 0xbe], dx
je 0x478446
mov edx, dword [ebx + 0x6e0]
cmp eax, 0xb
mov word [esp + 0xc0], dx
je 0x478446
mov edx, dword [ebx + 0x6e4]
cmp eax, 0xc
mov word [esp + 0xc2], dx
je 0x478446
mov eax, dword [ebx + 0x6e8]
mov word [esp + 0xc4], ax
movzx eax, byte [ebx + 0x6b5]
test eax, eax
mov byte [esp + 0xa9], al
je 0x478566
mov edx, dword [ebx + 0x6ec]
cmp eax, 1
mov word [esp + 0xc6], dx
je 0x478566
mov edx, dword [ebx + 0x6f0]
cmp eax, 2
mov word [esp + 0xc8], dx
je 0x478566
mov edx, dword [ebx + 0x6f4]
cmp eax, 3
mov word [esp + 0xca], dx
je 0x478566
mov edx, dword [ebx + 0x6f8]
cmp eax, 4
mov word [esp + 0xcc], dx
je 0x478566
mov edx, dword [ebx + 0x6fc]
cmp eax, 5
mov word [esp + 0xce], dx
je 0x478566
mov edx, dword [ebx + 0x700]
cmp eax, 6
mov word [esp + 0xd0], dx
je 0x478566
mov edx, dword [ebx + 0x704]
cmp eax, 7
mov word [esp + 0xd2], dx
je 0x478566
mov edx, dword [ebx + 0x708]
cmp eax, 8
mov word [esp + 0xd4], dx
je 0x478566
mov edx, dword [ebx + 0x70c]
cmp eax, 9
mov word [esp + 0xd6], dx
je 0x478566
mov edx, dword [ebx + 0x710]
cmp eax, 0xa
mov word [esp + 0xd8], dx
je 0x478566
mov edx, dword [ebx + 0x714]
cmp eax, 0xb
mov word [esp + 0xda], dx
je 0x478566
mov edx, dword [ebx + 0x718]
cmp eax, 0xc
mov word [esp + 0xdc], dx
je 0x478566
mov eax, dword [ebx + 0x71c]
mov word [esp + 0xde], ax
movzx eax, byte [ebx + 0x720]
mov byte [esp + 0xaa], al
mov eax, dword [ebx + 0x72c]
mov dword [esp + 0xe4], eax
mov eax, dword [ebx + 0x728]
mov dword [esp + 0x30], eax
mov eax, dword [esp + 0x1c]
mov dword [esp + 8], eax
lea eax, [esp + 0x2c]
mov dword [esp + 4], eax
mov eax, dword [esi]
mov eax, dword [eax + 0x64]
mov dword [esp], eax
mov eax, dword [esp + 0x10]
call dword [eax]
test eax, eax
mov dword [esp + 0x14], eax
mov dword [esp + 0x28], eax
jne 0x478c84
mov ebp, dword [ebx + 0x768]
test ebp, ebp
je 0x478c93
mov eax, dword [esp + 0x1c]
mov dword [esp + 0x18], ebx
lea eax, [eax + ebp*4]
mov ebx, eax
jmp 0x4785eb
sub ebx, 4
test ebp, ebp
je 0x478c93
mov eax, dword [esp + 0x18]
sub ebp, 1
lea edi, [esp + 0x2c]
mov ecx, 0x31
mov edx, dword [eax + ebp*4 + 0x76c]
xor eax, eax
rep stosd dword es:[edi], eax
movzx eax, byte [edx + 0xb0]
test eax, eax
mov byte [esp + 0x34], al
je 0x478708
mov ecx, dword [edx + 0xb4]
cmp eax, 1
mov word [esp + 0x38], cx
je 0x478708
mov ecx, dword [edx + 0xb8]
cmp eax, 2
mov word [esp + 0x3a], cx
je 0x478708
mov ecx, dword [edx + 0xbc]
cmp eax, 3
mov word [esp + 0x3c], cx
je 0x478708
mov ecx, dword [edx + 0xc0]
cmp eax, 4
mov word [esp + 0x3e], cx
je 0x478708
mov ecx, dword [edx + 0xc4]
cmp eax, 5
mov word [esp + 0x40], cx
je 0x478708
mov ecx, dword [edx + 0xc8]
cmp eax, 6
mov word [esp + 0x42], cx
je 0x478708
mov ecx, dword [edx + 0xcc]
cmp eax, 7
mov word [esp + 0x44], cx
je 0x478708
mov ecx, dword [edx + 0xd0]
cmp eax, 8
mov word [esp + 0x46], cx
je 0x478708
mov ecx, dword [edx + 0xd4]
cmp eax, 9
mov word [esp + 0x48], cx
je 0x478708
mov ecx, dword [edx + 0xd8]
cmp eax, 0xa
mov word [esp + 0x4a], cx
je 0x478708
mov ecx, dword [edx + 0xdc]
cmp eax, 0xb
mov word [esp + 0x4c], cx
je 0x478708
mov ecx, dword [edx + 0xe0]
cmp eax, 0xc
mov word [esp + 0x4e], cx
je 0x478708
mov ecx, dword [edx + 0xe4]
cmp eax, 0xd
mov word [esp + 0x50], cx
je 0x478708
mov eax, dword [edx + 0xe8]
mov word [esp + 0x52], ax
movzx eax, byte [edx + 0xb1]
test eax, eax
mov byte [esp + 0x35], al
je 0x4787ba
mov ecx, dword [edx + 0xec]
cmp eax, 1
mov word [esp + 0x54], cx
je 0x4787ba
mov ecx, dword [edx + 0xf0]
cmp eax, 2
mov word [esp + 0x56], cx
je 0x4787ba
mov ecx, dword [edx + 0xf4]
cmp eax, 3
mov word [esp + 0x58], cx
je 0x4787ba
mov ecx, dword [edx + 0xf8]
cmp eax, 4
mov word [esp + 0x5a], cx
je 0x4787ba
mov ecx, dword [edx + 0xfc]
cmp eax, 5
mov word [esp + 0x5c], cx
je 0x4787ba
mov ecx, dword [edx + 0x100]
cmp eax, 6
mov word [esp + 0x5e], cx
je 0x4787ba
mov ecx, dword [edx + 0x104]
cmp eax, 7
mov word [esp + 0x60], cx
je 0x4787ba
mov ecx, dword [edx + 0x108]
cmp eax, 8
mov word [esp + 0x62], cx
je 0x4787ba
mov ecx, dword [edx + 0x10c]
cmp eax, 9
mov word [esp + 0x64], cx
je 0x4787ba
mov eax, dword [edx + 0x110]
mov word [esp + 0x66], ax
movzx eax, byte [edx + 0xb2]
test eax, eax
mov byte [esp + 0x36], al
je 0x4788c6
mov ecx, dword [edx + 0x114]
cmp eax, 1
mov word [esp + 0x68], cx
je 0x4788c6
mov ecx, dword [edx + 0x118]
cmp eax, 2
mov word [esp + 0x6a], cx
je 0x4788c6
mov ecx, dword [edx + 0x11c]
cmp eax, 3
mov word [esp + 0x6c], cx
je 0x4788c6
mov ecx, dword [edx + 0x120]
cmp eax, 4
mov word [esp + 0x6e], cx
je 0x4788c6
mov ecx, dword [edx + 0x124]
cmp eax, 5
mov word [esp + 0x70], cx
je 0x4788c6
mov ecx, dword [edx + 0x128]
cmp eax, 6
mov word [esp + 0x72], cx
je 0x4788c6
mov ecx, dword [edx + 0x12c]
cmp eax, 7
mov word [esp + 0x74], cx
je 0x4788c6
mov ecx, dword [edx + 0x130]
cmp eax, 8
mov word [esp + 0x76], cx
je 0x4788c6
mov ecx, dword [edx + 0x134]
cmp eax, 9
mov word [esp + 0x78], cx
je 0x4788c6
mov ecx, dword [edx + 0x138]
cmp eax, 0xa
mov word [esp + 0x7a], cx
je 0x4788c6
mov ecx, dword [edx + 0x13c]
cmp eax, 0xb
mov word [esp + 0x7c], cx
je 0x4788c6
mov ecx, dword [edx + 0x140]
cmp eax, 0xc
mov word [esp + 0x7e], cx
je 0x4788c6
mov ecx, dword [edx + 0x144]
cmp eax, 0xd
mov word [esp + 0x80], cx
je 0x4788c6
mov eax, dword [edx + 0x148]
mov word [esp + 0x82], ax
movzx eax, byte [edx + 0xb3]
test eax, eax
mov byte [esp + 0x37], al
je 0x47899e
mov ecx, dword [edx + 0x14c]
cmp eax, 1
mov word [esp + 0x84], cx
je 0x47899e
mov ecx, dword [edx + 0x150]
cmp eax, 2
mov word [esp + 0x86], cx
je 0x47899e
mov ecx, dword [edx + 0x154]
cmp eax, 3
mov word [esp + 0x88], cx
je 0x47899e
mov ecx, dword [edx + 0x158]
cmp eax, 4
mov word [esp + 0x8a], cx
je 0x47899e
mov ecx, dword [edx + 0x15c]
cmp eax, 5
mov word [esp + 0x8c], cx
je 0x47899e
mov ecx, dword [edx + 0x160]
cmp eax, 6
mov word [esp + 0x8e], cx
je 0x47899e
mov ecx, dword [edx + 0x164]
cmp eax, 7
mov word [esp + 0x90], cx
je 0x47899e
mov ecx, dword [edx + 0x168]
cmp eax, 8
mov word [esp + 0x92], cx
je 0x47899e
mov ecx, dword [edx + 0x16c]
cmp eax, 9
mov word [esp + 0x94], cx
je 0x47899e
mov eax, dword [edx + 0x170]
mov word [esp + 0x96], ax
mov eax, dword [edx + 0x174]
mov dword [esp + 0x98], eax
mov eax, dword [edx + 0x178]
mov dword [esp + 0x9c], eax
mov eax, dword [edx + 0x17c]
mov dword [esp + 0xa0], eax
mov eax, dword [edx + 0x180]
mov word [esp + 0xa4], ax
mov eax, dword [edx + 0x184]
mov word [esp + 0xa6], ax
movzx eax, byte [edx + 0x188]
test eax, eax
mov byte [esp + 0xa8], al
je 0x478b01
mov ecx, dword [edx + 0x18c]
cmp eax, 1
mov word [esp + 0xac], cx
je 0x478b01
mov ecx, dword [edx + 0x190]
cmp eax, 2
mov word [esp + 0xae], cx
je 0x478b01
mov ecx, dword [edx + 0x194]
cmp eax, 3
mov word [esp + 0xb0], cx
je 0x478b01
mov ecx, dword [edx + 0x198]
cmp eax, 4
mov word [esp + 0xb2], cx
je 0x478b01
mov ecx, dword [edx + 0x19c]
cmp eax, 5
mov word [esp + 0xb4], cx
je 0x478b01
mov ecx, dword [edx + 0x1a0]
cmp eax, 6
mov word [esp + 0xb6], cx
je 0x478b01
mov ecx, dword [edx + 0x1a4]
cmp eax, 7
mov word [esp + 0xb8], cx
je 0x478b01
mov ecx, dword [edx + 0x1a8]
cmp eax, 8
mov word [esp + 0xba], cx
je 0x478b01
mov ecx, dword [edx + 0x1ac]
cmp eax, 9
mov word [esp + 0xbc], cx
je 0x478b01
mov ecx, dword [edx + 0x1b0]
cmp eax, 0xa
mov word [esp + 0xbe], cx
je 0x478b01
mov ecx, dword [edx + 0x1b4]
cmp eax, 0xb
mov word [esp + 0xc0], cx
je 0x478b01
mov ecx, dword [edx + 0x1b8]
cmp eax, 0xc
mov word [esp + 0xc2], cx
je 0x478b01
mov eax, dword [edx + 0x1bc]
mov word [esp + 0xc4], ax
movzx eax, byte [edx + 0x189]
test eax, eax
mov byte [esp + 0xa9], al
je 0x478c21
mov ecx, dword [edx + 0x1c0]
cmp eax, 1
mov word [esp + 0xc6], cx
je 0x478c21
mov ecx, dword [edx + 0x1c4]
cmp eax, 2
mov word [esp + 0xc8], cx
je 0x478c21
mov ecx, dword [edx + 0x1c8]
cmp eax, 3
mov word [esp + 0xca], cx
je 0x478c21
mov ecx, dword [edx + 0x1cc]
cmp eax, 4
mov word [esp + 0xcc], cx
je 0x478c21
mov ecx, dword [edx + 0x1d0]
cmp eax, 5
mov word [esp + 0xce], cx
je 0x478c21
mov ecx, dword [edx + 0x1d4]
cmp eax, 6
mov word [esp + 0xd0], cx
je 0x478c21
mov ecx, dword [edx + 0x1d8]
cmp eax, 7
mov word [esp + 0xd2], cx
je 0x478c21
mov ecx, dword [edx + 0x1dc]
cmp eax, 8
mov word [esp + 0xd4], cx
je 0x478c21
mov ecx, dword [edx + 0x1e0]
cmp eax, 9
mov word [esp + 0xd6], cx
je 0x478c21
mov ecx, dword [edx + 0x1e4]
cmp eax, 0xa
mov word [esp + 0xd8], cx
je 0x478c21
mov ecx, dword [edx + 0x1e8]
cmp eax, 0xb
mov word [esp + 0xda], cx
je 0x478c21
mov ecx, dword [edx + 0x1ec]
cmp eax, 0xc
mov word [esp + 0xdc], cx
je 0x478c21
mov eax, dword [edx + 0x1f0]
mov word [esp + 0xde], ax
movzx eax, byte [edx + 0x1f4]
mov byte [esp + 0xaa], al
mov eax, dword [edx + 0x200]
mov dword [esp + 0xe4], eax
mov eax, dword [edx + 0x1fc]
mov dword [esp + 8], ebx
mov dword [esp + 0x30], eax
lea eax, [esp + 0x2c]
mov dword [esp + 4], eax
mov eax, dword [esi]
mov eax, dword [eax + 0x64]
mov dword [esp], eax
mov eax, dword [esp + 0x10]
call dword [eax]
test eax, eax
mov dword [esp + 0x28], eax
je 0x4785e0
mov dword [esp + 0x14], eax
jmp 0x477f2b
mov eax, dword [esp + 0x28]
mov dword [esp + 0x14], eax
mov dword [esi + 0x2c], 0xffffffff
mov eax, dword [esp + 0x14]
add esp, 0xfc
pop ebx
pop esi
pop edi
pop ebp
ret
mov eax, dword [esp + 0x1c]
mov dword [esi + 0x28], eax
jmp 0x478c7d