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

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0x144
mov edx, dword [ebp + 0xc]
push ebx
mov ebx, dword [ebp + 0x14]
push esi
push edi
mov esi, eax
or eax, 0xffffffff
lea edi, [edx + ebx]
lea ecx, [edi - 1]
mov dword [esp + 0x1c], eax
mov dword [esp + 0x30], eax
mov dword [esp + 0x4c], eax
xor eax, eax
test dword [ebp + 0x18], 0xe20f5a6f
mov dword [esp + 0x48], ecx
mov ecx, esi
mov dword [esp + 0x2c], eax
mov dword [esp + 0x54], eax
mov dword [esp + 0x40], eax
mov dword [esp + 0x28], eax
mov dword [esp + 0x24], eax
mov dword [esp + 0x14], ecx
je 0x47d7d1
mov eax, 0xfffffffd
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
cmp esi, eax
je 0x47e1f9
cmp edx, eax
je 0x47e1f9
cmp dword [ebp + 0x1c], eax
jne 0x47d7ef
cmp dword [ebp + 0x20], eax
jg 0x47e1f9
cmp dword [ebp + 0x20], eax
jge 0x47d800
mov eax, 0xfffffff1
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
cmp ebx, eax
jl 0x47e1ed
cmp ebx, dword [ebp + 0x10]
jg 0x47e1ed
movzx edx, word [esi + 0x18]
add edx, esi
mov dword [esp + 0x80], edx
movzx edx, word [esi + 0x1c]
mov dword [esp + 0x78], edx
movzx edx, word [esi + 0x1a]
mov dword [esp + 0x7c], edx
mov edx, dword [esi + 0x20]
mov dword [esp + 0x18], edx
mov edx, dword [ebp + 8]
mov dword [esp + 0x20], eax
mov dword [esp + 0x5c], 0x989680
mov dword [esp + 0x60], 0x1770
mov dword [esp + 0xec], eax
cmp edx, eax
je 0x47d8ac
mov ebx, dword [edx]
mov dword [esp + 0x10], ebx
test bl, 1
je 0x47d86d
mov ebx, dword [edx + 4]
mov dword [esp + 0x20], ebx
mov ebx, dword [esp + 0x10]
test bl, 2
je 0x47d87d
mov ebx, dword [edx + 8]
mov dword [esp + 0x5c], ebx
mov ebx, dword [esp + 0x10]
test bl, 0x10
je 0x47d88d
mov ebx, dword [edx + 0x14]
mov dword [esp + 0x60], ebx
mov ebx, dword [esp + 0x10]
test bl, 4
je 0x47d8a0
mov ebx, dword [edx + 0xc]
mov dword [esp + 0xec], ebx
mov ebx, dword [esp + 0x10]
test bl, 8
je 0x47d8ac
mov edx, dword [edx + 0x10]
mov dword [esp + 0x18], edx
cmp dword [esp + 0x18], eax
jne 0x47d8ba
mov dword [esp + 0x18], 0x4981a0
cmp dword [esi], 0x50435245
je 0x47d909
mov ebx, dword [esp + 0x20]
lea eax, [esp + 0xfc]
push eax
lea eax, [esp + 0x12c]
mov edx, esi
call fcn.0047e350
add esp, 4
mov dword [esp + 0x14], eax
test eax, eax
jne 0x47d8f3
mov eax, 0xfffffffc
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
cmp dword [esp + 0x20], 0
je 0x47d905
lea ecx, [esp + 0xfc]
mov dword [esp + 0x20], ecx
mov ecx, dword [esp + 0x14]
mov eax, dword [ecx + 8]
mov edx, dword [ebp + 0x18]
mov ebx, eax
shr eax, 0x12
and eax, 1
or ebx, edx
mov dword [esp + 0x50], eax
movzx eax, word [ecx + 0x1a]
shr ebx, 4
and ebx, 1
mov dword [esp + 0x3c], ebx
movzx ebx, word [ecx + 0xc]
shr ebx, 3
and ebx, 1
mov dword [esp + 0x38], ebx
movzx ebx, word [ecx + 0x1c]
imul ebx, eax
movzx eax, word [ecx + 0x18]
add ebx, esi
mov esi, dword [ebp + 0x14]
add eax, ebx
mov dword [esp + 0xb4], eax
mov eax, dword [ebp + 0xc]
mov dword [esp + 0xb8], eax
add eax, dword [ebp + 0x10]
mov dword [esp + 0xd8], esi
mov dword [esp + 0xbc], eax
mov dword [esp + 0x10], eax
mov eax, dword [ecx + 8]
shr eax, 5
and eax, 1
mov dword [esp + 0xa0], eax
mov eax, dword [ecx + 8]
shr eax, 0x19
and eax, 1
mov dword [esp + 0x9c], eax
mov eax, edx
shr eax, 7
and eax, 1
mov dword [esp + 0x94], eax
mov eax, edx
shr eax, 8
and eax, 1
mov dword [esp + 0x98], eax
mov eax, edx
shr eax, 0xa
and eax, 1
mov dword [esp + 0xa4], eax
mov eax, edx
shr eax, 0x1c
and eax, 1
mov dword [esp + 0xa8], eax
test edx, 0x8000000
je 0x47d9dc
mov eax, 2
jmp 0x47d9e4
mov eax, edx
shr eax, 0xf
and eax, 1
mov ebx, eax
mov eax, dword [esp + 0x18]
mov dword [esp + 0x88], eax
add eax, 0x340
xor esi, esi
mov dword [esp + 0x8c], eax
mov eax, edx
and eax, 0x1800000
mov dword [esp + 0xcc], ebx
mov dword [esp + 0xac], esi
mov dword [esp + 0xf0], esi
mov dword [esp + 0xe8], esi
je 0x47da4b
cmp eax, 0x800000
je 0x47da3e
cmp eax, 0x1000000
je 0x47da64
mov eax, 0xffffffe9
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov dword [esp + 0xb0], 1
jmp 0x47da6b
mov eax, dword [ecx + 8]
test eax, 0x1800000
je 0x47da64
shr eax, 0x17
and eax, 1
mov dword [esp + 0xb0], eax
jmp 0x47da6b
mov dword [esp + 0xb0], esi
test edx, 0x700000
jne 0x47da78
mov eax, dword [ecx + 8]
jmp 0x47da7a
mov eax, edx
and eax, 0x700000
cmp eax, 0x300000
ja 0x47dad5
je 0x47dace
cmp eax, esi
je 0x47dace
cmp eax, 0x100000
je 0x47dac7
cmp eax, 0x200000
jne 0x47da32
mov eax, 0xa
mov dword [esp + 0x70], esi
cmp eax, 0xff
jle 0x47dafb
mov edx, eax
sar edx, 8
mov dword [esp + 0x74], 2
mov byte [esp + 0x84], dl
mov byte [esp + 0x85], al
jmp 0x47db0a
mov eax, 0xd
jmp 0x47da9f
mov eax, 0xd0a
jmp 0x47da9f
cmp eax, 0x400000
je 0x47daf1
cmp eax, 0x500000
jne 0x47da32
mov dword [esp + 0x70], 2
jmp 0x47db0a
mov dword [esp + 0x70], 1
jmp 0x47db0a
mov dword [esp + 0x74], 1
mov byte [esp + 0x84], al
cmp ebx, esi
je 0x47db20
test byte [ecx + 0xc], 1
je 0x47db20
mov eax, 0xfffffff3
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov eax, 0x55555556
imul dword [ebp + 0x20]
mov eax, edx
shr eax, 0x1f
add eax, edx
lea ebx, [eax + eax*2]
movzx eax, word [ecx + 0x12]
mov dword [esp + 0x44], ebx
cmp ax, si
jbe 0x47db8a
mov ecx, eax
mov eax, 0x55555556
imul ebx
mov eax, edx
shr eax, 0x1f
add eax, edx
cmp ecx, eax
jl 0x47db8a
lea ebx, [ecx + ecx*2 + 3]
lea ecx, [ebx*4]
push ecx
mov dword [esp + 0x48], ebx
call dword [0x49f338]
mov esi, eax
add esp, 4
mov dword [esp + 0x64], esi
test esi, esi
jne 0x47db80
lea eax, [esi - 6]
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov dword [esp + 0x2c], 1
jmp 0x47db91
mov esi, dword [ebp + 0x1c]
mov dword [esp + 0x64], esi
lea ecx, [ebx + ebx]
mov eax, 0x55555556
imul ecx
mov eax, edx
shr eax, 0x1f
add eax, edx
or edx, 0xffffffff
mov dword [esp + 0x68], ebx
mov dword [esp + 0x6c], eax
mov dword [esp + 0x90], 0
mov dword [esp + 0xd4], edx
test esi, esi
je 0x47dbfd
mov ecx, dword [esp + 0x14]
movzx ecx, word [ecx + 0x10]
add ecx, ecx
lea eax, [esi + ebx*4]
lea ebx, [ecx + ecx]
mov ecx, eax
sub ecx, ebx
lea ebx, [esi + 8]
cmp ecx, ebx
jae 0x47dbe0
mov ecx, ebx
sub eax, 4
cmp eax, ecx
jb 0x47dbf4
mov dword [eax], edx
sub eax, 4
cmp eax, ecx
jae 0x47dbe7
mov esi, dword [esp + 0x64]
mov dword [esi + 4], edx
mov eax, dword [esp + 0x64]
mov dword [eax], edx
cmp dword [esp + 0x3c], 0
jne 0x47dc59
mov ecx, dword [esp + 0x14]
test byte [ecx + 0xc], 2
je 0x47dc3b
movzx eax, word [ecx + 0x14]
mov ebx, eax
and ebx, 0xff
shr eax, 8
and eax, 1
mov dword [esp + 0x1c], ebx
mov dword [esp + 0x54], eax
je 0x47dc61
mov edx, dword [esp + 0x88]
movzx ebx, byte [edx + ebx]
mov dword [esp + 0x1c], ebx
jmp 0x47dc61
cmp dword [esp + 0x38], 0
jne 0x47dc59
mov eax, dword [esp + 0x20]
test eax, eax
je 0x47dc59
test byte [eax + 4], 1
je 0x47dc59
add eax, 8
mov dword [esp + 0x28], eax
jmp 0x47dc5d
mov ecx, dword [esp + 0x14]
mov ebx, dword [esp + 0x1c]
test byte [ecx + 0xc], 4
je 0x47dc91
movzx eax, word [ecx + 0x16]
mov ecx, eax
and ecx, 0xff
shr eax, 8
and eax, 1
mov dword [esp + 0x40], eax
mov eax, dword [esp + 0x18]
mov dword [esp + 0x30], ecx
movzx ecx, byte [eax + ecx + 0x100]
mov dword [esp + 0x4c], ecx
mov eax, dword [ebp + 0x18]
and eax, 0x4000000
mov dword [esp + 0xf8], eax
cmp dword [esp + 0x50], 0
mov edx, dword [esp + 0x10]
mov dword [esp + 0x18], edx
je 0x47dd21
mov edx, dword [esp + 0xbc]
mov ecx, edi
cmp edi, edx
jae 0x47dd1d
mov esi, dword [esp + 0x74]
mov eax, dword [esp + 0x70]
test eax, eax
je 0x47dcea
push eax
lea esi, [esp + 0x78]
call fcn.0047e540
add esp, 4
test eax, eax
jne 0x47dd1d
mov edx, dword [esp + 0xbc]
mov esi, dword [esp + 0x74]
mov eax, dword [esp + 0x70]
jmp 0x47dd12
mov ebx, edx
sub ebx, esi
cmp ecx, ebx
ja 0x47dd0e
mov bl, byte [esp + 0x84]
cmp byte [ecx], bl
jne 0x47dd0e
cmp esi, 1
je 0x47dd19
mov bl, byte [esp + 0x85]
cmp byte [ecx + 1], bl
je 0x47dd19
mov ebx, dword [esp + 0x1c]
inc ecx
cmp ecx, edx
jb 0x47dcc4
jmp 0x47dd1d
mov ebx, dword [esp + 0x1c]
mov dword [esp + 0x10], ecx
mov eax, dword [esp + 0x14]
mov ecx, dword [eax + 8]
or ecx, dword [ebp + 0x18]
test ecx, 0x4000000
jne 0x47de82
test ebx, ebx
js 0x47dd97
cmp dword [esp + 0x54], 0
je 0x47dd72
cmp edi, dword [esp + 0x10]
jae 0x47de82
lea esp, [esp]
movzx edx, byte [edi]
mov eax, dword [esp + 0x88]
movzx ecx, byte [edx + eax]
cmp ecx, ebx
je 0x47de82
inc edi
cmp edi, dword [esp + 0x10]
jb 0x47dd50
jmp 0x47de82
cmp edi, dword [esp + 0x10]
jae 0x47de82
lea esp, [esp]
movzx edx, byte [edi]
cmp edx, ebx
je 0x47de82
inc edi
cmp edi, dword [esp + 0x10]
jb 0x47dd80
jmp 0x47de82
cmp dword [esp + 0x38], 0
je 0x47de4b
mov eax, dword [esp + 0xb8]
add eax, dword [ebp + 0x14]
cmp edi, eax
jbe 0x47de82
cmp edi, dword [esp + 0x10]
jae 0x47de29
mov ecx, dword [esp + 0x74]
mov esi, dword [esp + 0xb8]
cmp dword [esp + 0x70], 0
je 0x47ddfb
cmp edi, esi
jbe 0x47de22
mov edx, dword [esp + 0x70]
push edx
mov edx, dword [esp + 0xbc]
lea esi, [esp + 0x78]
mov ecx, edi
call fcn.0047e5d0
add esp, 4
test eax, eax
jne 0x47de29
mov ecx, dword [esp + 0x74]
mov esi, dword [esp + 0xb8]
jmp 0x47de22
lea eax, [ecx + esi]
cmp edi, eax
jb 0x47de22
mov dl, byte [esp + 0x84]
mov eax, edi
sub eax, ecx
cmp byte [eax], dl
jne 0x47de22
cmp ecx, 1
je 0x47de29
mov dl, byte [esp + 0x85]
cmp byte [eax + 1], dl
je 0x47de29
inc edi
cmp edi, dword [esp + 0x10]
jb 0x47ddc5
cmp byte [edi - 1], 0xd
jne 0x47de82
mov eax, dword [esp + 0x70]
cmp eax, 1
je 0x47de3d
cmp eax, 2
jne 0x47de82
cmp edi, dword [esp + 0x10]
jae 0x47de82
cmp byte [edi], 0xa
jne 0x47de82
inc edi
jmp 0x47de82
cmp dword [esp + 0x28], 0
je 0x47de82
cmp edi, dword [esp + 0x10]
jae 0x47de82
mov esi, dword [esp + 0x10]
lea esp, [esp]
movzx eax, byte [edi]
mov ecx, eax
and ecx, 7
mov edx, 1
shl edx, cl
mov ecx, dword [esp + 0x28]
shr eax, 3
mov al, byte [eax + ecx]
test al, dl
jne 0x47de82
inc edi
cmp edi, esi
jb 0x47de60
cmp dword [esp + 0xf8], 0
mov edx, dword [esp + 0x18]
mov dword [esp + 0x10], edx
jne 0x47df2c
cmp dword [esp + 0xcc], 0
jne 0x47df2c
mov eax, dword [esp + 0x20]
test eax, eax
je 0x47debd
test byte [eax + 4], 2
je 0x47debd
mov ecx, edx
sub ecx, edi
cmp ecx, dword [eax + 0x28]
jb 0x47df00
mov esi, dword [esp + 0x30]
test esi, esi
js 0x47df2c
mov eax, edx
sub eax, edi
cmp eax, 0x3e8
jge 0x47df2c
xor eax, eax
test ebx, ebx
setns al
add eax, edi
cmp eax, dword [esp + 0x48]
jbe 0x47df2c
cmp dword [esp + 0x40], 0
je 0x47df07
cmp eax, edx
jae 0x47df00
mov ebx, dword [esp + 0x4c]
mov edi, edi
movzx ecx, byte [eax]
inc eax
cmp ecx, esi
je 0x47df23
cmp ecx, ebx
je 0x47df23
cmp eax, edx
jb 0x47def0
xor ebx, ebx
jmp 0x47e09e
cmp eax, edx
jae 0x47df00
jmp 0x47df10
movzx ecx, byte [eax]
inc eax
cmp ecx, esi
je 0x47df23
cmp eax, edx
jb 0x47df10
xor ebx, ebx
jmp 0x47e09e
dec eax
cmp eax, edx
jae 0x47df00
mov dword [esp + 0x48], eax
mov eax, dword [esp + 0xb4]
xor esi, esi
push esi
push esi
lea edx, [esp + 0x60]
push edx
push 2
push esi
push edi
push eax
push edi
mov dword [esp + 0xe0], edi
mov dword [esp + 0xe8], edi
mov dword [esp + 0x78], esi
mov dword [esp + 0xfc], esi
mov dword [esp + 0xf0], esi
call fcn.004798c0
add esp, 0x20
mov ebx, eax
cmp dword [esp + 0xac], esi
je 0x47df86
cmp dword [esp + 0x24], esi
jne 0x47df86
mov ecx, dword [esp + 0xc8]
mov dword [esp + 0x24], ecx
cmp ebx, 0xfffffc1e
jg 0x47dfb1
je 0x47dfa4
cmp ebx, 0xfffffc1a
je 0x47df00
cmp ebx, 0xfffffc1d
jmp 0x47dfc7
mov eax, dword [esp + 0xc0]
cmp eax, edi
je 0x47dfcd
jmp 0x47dfd0
cmp ebx, 0xfffffc1f
jl 0x47e091
cmp ebx, 0xfffffc20
jle 0x47dfcd
cmp ebx, esi
jne 0x47e091
lea eax, [edi + 1]
xor ebx, ebx
mov dword [esp + 0x34], eax
cmp dword [esp + 0x50], esi
je 0x47e040
cmp dword [esp + 0x70], esi
je 0x47e013
cmp edi, dword [esp + 0xbc]
jae 0x47e040
mov edx, dword [esp + 0x70]
push edx
mov edx, dword [esp + 0xc0]
lea esi, [esp + 0x78]
mov ecx, edi
call fcn.0047e540
add esp, 4
test eax, eax
jne 0x47e09e
mov eax, dword [esp + 0x34]
jmp 0x47e040
mov ecx, dword [esp + 0xbc]
mov esi, dword [esp + 0x74]
sub ecx, esi
cmp edi, ecx
ja 0x47e040
mov dl, byte [esp + 0x84]
cmp byte [edi], dl
jne 0x47e040
cmp esi, 1
je 0x47e09e
mov cl, byte [esp + 0x85]
cmp byte [edi + 1], cl
je 0x47e09e
mov edi, eax
cmp dword [esp + 0x3c], ebx
jne 0x47e09e
mov ecx, dword [esp + 0x18]
cmp eax, ecx
ja 0x47e09e
cmp byte [eax - 1], 0xd
jne 0x47e081
cmp eax, ecx
jae 0x47e081
cmp byte [eax], 0xa
jne 0x47e081
mov edx, dword [esp + 0x14]
test byte [edx + 0xc], 0x20
jne 0x47e081
mov ecx, dword [esp + 0x70]
cmp ecx, 1
je 0x47e07e
cmp ecx, 2
je 0x47e07e
cmp dword [esp + 0x74], 2
jne 0x47e081
lea edi, [eax + 1]
mov dword [esp + 0xf0], ebx
mov ebx, dword [esp + 0x1c]
jmp 0x47dca0
cmp ebx, 1
je 0x47e0fe
cmp ebx, 0xfffffc19
je 0x47e0fe
cmp dword [esp + 0x2c], 0
je 0x47e0b3
mov eax, dword [esp + 0x64]
push eax
call dword [0x49f33c]
add esp, 4
test ebx, ebx
je 0x47e0c0
cmp ebx, 0xfffffff4
jne 0x47e1e4
mov edx, dword [esp + 0x24]
test edx, edx
je 0x47e0f6
cmp dword [ebp + 0x20], 1
mov dword [esp + 0xf0], 0
jle 0x47e0ec
mov ecx, dword [ebp + 0xc]
mov eax, dword [ebp + 0x1c]
sub edx, ecx
mov dword [eax], edx
mov edx, dword [esp + 0x18]
sub edx, ecx
mov dword [eax + 4], edx
mov ebx, 0xfffffff4
jmp 0x47e1cc
or ebx, 0xffffffff
jmp 0x47e1cc
cmp dword [esp + 0x2c], esi
mov esi, dword [ebp + 0x1c]
je 0x47e149
mov ebx, dword [ebp + 0x20]
mov edi, dword [esp + 0x64]
cmp ebx, 4
jl 0x47e12b
lea ecx, [ebx*4 - 8]
push ecx
lea edx, [edi + 8]
push edx
lea eax, [esi + 8]
push eax
call fcn.00487060
add esp, 0xc
cmp dword [esp + 0xd0], ebx
jle 0x47e13f
mov dword [esp + 0x90], 1
push edi
call dword [0x49f33c]
add esp, 4
cmp dword [esp + 0x90], 0
mov edi, dword [esp + 0xd0]
je 0x47e15e
xor ebx, ebx
jmp 0x47e167
mov eax, edi
cdq
sub eax, edx
mov ebx, eax
sar ebx, 1
mov ecx, dword [esp + 0x14]
movzx ecx, word [ecx + 0x10]
mov eax, edi
cdq
sub eax, edx
sar eax, 1
cmp eax, ecx
jg 0x47e1a4
test esi, esi
je 0x47e1a4
lea eax, [ecx + ecx + 2]
cmp eax, dword [ebp + 0x20]
jle 0x47e18b
mov eax, dword [esp + 0x44]
lea edi, [esi + edi*4]
lea ecx, [esi + eax*4]
cmp edi, ecx
jae 0x47e1a4
mov esi, dword [ebp + 0x1c]
sub ecx, edi
dec ecx
shr ecx, 2
inc ecx
or eax, 0xffffffff
rep stosd dword es:[edi], eax
cmp dword [ebp + 0x20], 2
jge 0x47e1ae
xor ebx, ebx
jmp 0x47e1cc
mov eax, dword [esp + 0xb8]
mov edx, dword [esp + 0xc0]
mov ecx, dword [esp + 0xc4]
sub edx, eax
sub ecx, eax
mov dword [esi], edx
mov dword [esi + 4], ecx
mov eax, dword [ebp + 8]
test eax, eax
je 0x47e1e4
test byte [eax], 0x20
je 0x47e1e4
mov edx, dword [eax + 0x18]
mov eax, dword [esp + 0xf0]
mov dword [edx], eax
mov eax, ebx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov eax, 0xffffffe8
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
pop edi
pop esi
mov eax, 0xfffffffe
pop ebx
mov esp, ebp
pop ebp
ret