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

Disassembly:
mov al, byte [esi]
cmp al, 0x20
je fcn.00476dcc
cmp al, 9
jne 0x476dcf
inc esi
jmp 0x476dc2
mov al, byte [esi]
test al, al
je case.default.0x476f5e
movsx eax, al
push eax
call 0x4c1f90
add esp, 4
les eax, [ebx + eax*4]
clc
pop ecx
jne case.default.0x476f5e
inc esi
cmp byte [esi], 0
je case.default.0x476f5e
call fcn.004542c0
mov edi, dword [esp + 0x10]
lea ecx, [esp + 0x40]
push ecx
push edi
mov dword [esp + 0x5c], eax
call dword [0x48d454]
mov edx, dword [esp + 0x40]
mov eax, dword [esp + 0x44]
add dword [esp + 0x50], edx
add dword [esp + 0x54], eax
lea ecx, [esp + 0x50]
push ecx
push 0x4353a0
push edi
call dword [0x48d5bc]
mov esi, dword [esp + 0x68]
test esi, esi
je 0x476e40
mov dword [esp + 0x18], esi
jmp 0x476e46
mov esi, edi
mov dword [esp + 0x18], edi
mov edx, dword [esp + 0x50]
mov eax, dword [esp + 0x54]
lea ecx, [esp + 0x28]
push ecx
push esi
mov dword [esp + 0x30], edx
mov dword [esp + 0x34], eax
call dword [0x48d5dc]
cmp dword [ebp + 0xc], 1
jl 0x4770ee
mov ecx, dword [esp + 0x28]
cmp ecx, 0x80000000
je 0x476e83
mov eax, dword [esp + 0x2c]
cmp eax, 0x80000000
jne 0x476ed2
lea edx, [esp + 0x30]
push edx
push esi
call dword [0x48d454]
test eax, eax
je case.default.0x476f5e
mov ecx, dword [esp + 0x28]
cmp ecx, 0x80000000
jne 0x476eb6
mov eax, dword [esp + 0x38]
sub eax, dword [esp + 0x30]
cdq
sub eax, edx
mov ecx, eax
sar ecx, 1
mov dword [esp + 0x28], ecx
mov eax, dword [esp + 0x2c]
cmp eax, 0x80000000
jne 0x476ed2
mov eax, dword [esp + 0x3c]
sub eax, dword [esp + 0x34]
cdq
sub eax, edx
sar eax, 1
mov dword [esp + 0x2c], eax
movzx eax, ax
shl eax, 0x10
movzx ecx, cx
or eax, ecx
mov dword [esp + 0x20], eax
mov al, byte [ebp + 8]
cmp al, 0x9f
je 0x476ef0
cmp al, 0x9e
je 0x476ef0
xor dl, dl
jmp 0x476ef2
mov dl, 1
mov byte [esp + 0xc], dl
cmp al, 0x9c
je 0x476f02
cmp al, 0x9d
je 0x476f02
xor cl, cl
jmp 0x476f04
mov cl, 1
mov byte [esp + 0xe], cl
test dl, dl
je 0x476f2e
xor ebx, ebx
cmp al, 0x9f
setne bl
mov edi, 0x20a
dec ebx
and ebx, 0xf0
add ebx, 0xffffff88
imul ebx, dword [ebp + 0xc]
shl ebx, 0x10
jmp 0x476fba
test cl, cl
je 0x476f51
xor ebx, ebx
cmp al, 0x9c
setne bl
mov edi, 0x20e
dec ebx
and ebx, 0xffffff10
add ebx, 0x78
imul ebx, dword [ebp + 0xc]
shl ebx, 0x10
jmp 0x476fba
movzx eax, al
dec eax
cmp eax, 5
ja case.default.0x476f5e
jmp dword [eax*4 + 0x42f150]
cmp byte [esp + 0xd], 0
mov byte [esp + 0xf], 0
je 0x477016
mov edx, dword [esp + 0x10]
push 0
push edx
call dword [0x48d600]
mov dword [esp + 0x24], eax
test eax, eax
je 0x47700b
cmp eax, dword [0x4a2bbc]
je 0x47700b
mov esi, dword [esp + 0x10]
call 0x4b0640
test al, al
jne 0x47700b
mov ecx, dword [esp + 0x24]
mov edx, dword [0x4a2bbc]
push 1
push ecx
push edx
call dword [0x48d4e8]
test eax, eax
setne byte [esp + 0xf]
mov eax, dword [esp + 0x10]
push eax
call dword [0x48d5b8]
cmp byte [esp + 0xc], 0
jne 0x4770a9
cmp byte [esp + 0xe], 0
jne 0x4770a9
mov eax, dword [ebp + 0xc]
test eax, eax
jle 0x4770d4
mov esi, dword [0x48d570]
mov dword [esp + 0x10], eax
cmp dword [esp + 0x1c], 1
je 0x47706e
mov ecx, dword [esp + 0x20]
mov edx, dword [esp + 0x18]
push ecx
push ebx
push edi
push edx
call esi
mov eax, dword [0x49d3c8]
mov eax, dword [eax + 0x58]
cmp eax, 0xffffffff
jle 0x47706e
push 1
push eax
call fcn.00449340
add esp, 8
cmp dword [esp + 0x1c], 0
je 0x4770a1
mov ecx, dword [esp + 0x20]
mov edx, dword [esp + 0x14]
mov eax, dword [esp + 0x18]
push ecx
push 0
push edx
push eax
call esi
mov ecx, dword [0x49d3c8]
mov eax, dword [ecx + 0x58]
cmp eax, 0xffffffff
jle 0x4770a1
push 1
push eax
call fcn.00449340
add esp, 8
dec dword [esp + 0x10]
jne 0x477041
jmp 0x4770d4
mov edx, dword [esp + 0x20]
mov eax, dword [esp + 0x18]
push edx
push ebx
push edi
push eax
call dword [0x48d570]
mov ecx, dword [0x49d3c8]
mov eax, dword [ecx + 0x58]
cmp eax, 0xffffffff
jle 0x4770d4
push 1
push eax
call fcn.00449340
add esp, 8
cmp byte [esp + 0xf], 0
je 0x4770ee
mov edx, dword [esp + 0x24]
mov eax, dword [0x4a2bbc]
push 0
push edx
push eax
call dword [0x48d4e8]
mov ecx, dword [0x4a13a4]
push 1
push 0
push 0xffffffffffffffff
pop edi
pop esi
mov eax, 1
pop ebx
mov esp, ebp
pop ebp
ret 0x1c
add byte [eax], al
mov dword [esp + 0x5c], 1
mov word [esp + 0x60], cx
dec esp
and al, 0x60
dec esp
and al, 0x60
call edi
xlatb
test esi, esi
je 0x48fdaf
invalid
sbb al, byte [eax + 0x1574003e]
cmp byte [esi], 0
je 0x48fdaf
push 0x104
lea ecx, [esp + 0x64]
dec esp
and al, 0x64
add dword [eax], eax
add byte [ebp + 0x5164244c], cl
dec esp
and al, 0x64
push ecx
push ecx
push 0xffffffffffffffff
push esi
push 0
add byte [edx], ch
call edi
jmp 0x48fdb6
xor edx, edx
mov word [esp + 0x60], dx
and al, 0x60
mov esi, dword [esp + 0x8274]
mov eax, dword [esi + 0x500]
test eax, eax
je 0x48fdcf
mov eax, dword [eax]
mov edx, eax
test eax, eax
jne 0x48fdd4
mov edx, 0x49554c
mov eax, dword [esi + 0x50c]
test eax, eax
je 0x48fde6
mov eax, dword [eax]
mov ecx, eax
test eax, eax
jne 0x48fdeb
mov ecx, 0x49554c
mov eax, dword [esi + 0x4f4]
test eax, eax
je 0x48fdfb
mov eax, dword [eax]
test eax, eax
jne 0x48fe00
mov eax, 0x49554c
mov esi, dword [esp + 0x8288]
push esi
lea edi, [esp + 0x1c]
push edi
movzx edi, word [esp + 0x68]
neg edi
sbb edi, edi
lea ebx, [esp + 0x68]
pop esp
and al, 0x68
and edi, ebx
push edi
push 0
push 0
lea edi, [esp + 0x27c]
push edi
push 0
push 1
push edx
push ecx
push eax
call dword [esp + 0x40]
test eax, eax
je 0x48fe71
mov eax, dword [esp + 0x828c]
mov byte [eax], 1
mov eax, dword [esi + 4]
test eax, eax
je 0x48fe50
push eax
call dword [0x48d2a4]
mov eax, dword [esp + 0x8284]
mov ecx, dword [esi]
mov edx, dword [esp + 0x8290]
mov dword [edx], ecx
test eax, eax
je 0x48fe8d
push eax
mov eax, dword [esi + 8]
call 0x44a010
jmp 0x48fe8d
mov eax, dword [esp + 0x827c]
mov esi, dword [esp + 0x8294]
push eax
mov eax, 0x200
call 0x4addb0
add esp, 4
push ebp
call dword [0x48d198]
pop edi
pop esi
pop ebp
mov eax, 1
pop ebx
add esp, 0x8260
ret 0x24