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

Disassembly:
sub esp, 0x78
push ebx
push ebp
push esi
push edi
mov dword [esp + 0x20], 0
mov eax, dword [esp + 0x94]
movsx eax, byte [eax]
mov dword [esp + 0x24], eax
inc dword [esp + 0x94]
test eax, eax
je 0x47248c
mov eax, dword [esp + 0x24]
cmp eax, 0x25
je 0x471a0a
xor ecx, ecx
mov cl, byte [esp + 0x24]
mov edx, dword [0x493d9c]
test byte [edx + ecx*2 + 1], 0x80
je 0x4719dd
mov ecx, dword [esp + 0x94]
cmp byte [ecx], 0
je 0x47248c
push dword [esp + 0x90]
and eax, 0xff
push eax
call dword [esp + 0x94]
add esp, 8
cmp eax, 0xffffffff
je 0x472498
inc dword [esp + 0x20]
mov eax, dword [esp + 0x94]
movsx eax, byte [eax]
mov dword [esp + 0x24], eax
inc dword [esp + 0x94]
push dword [esp + 0x90]
mov eax, dword [esp + 0x28]
and eax, 0xff
push eax
call dword [esp + 0x94]
add esp, 8
cmp eax, 0xffffffff
je 0x472498
inc dword [esp + 0x20]
jmp 0x472454
mov dword [esp + 0x64], 0x493ba4
xor ebp, ebp
jmp 0x471a1c
or ebp, 1
mov eax, dword [esp + 0x94]
movsx eax, byte [eax]
mov dword [esp + 0x24], eax
inc dword [esp + 0x94]
cmp eax, 0x2d
je 0x471a16
cmp eax, 0x2b
je 0x471a59
cmp eax, 0x20
je 0x471a61
cmp eax, 0x23
je 0x471a69
cmp eax, 0x30
je 0x471a71
cmp eax, 0x2a
je 0x471a79
test eax, eax
je 0x472498
jmp 0x471ab4
or ebp, 2
jmp 0x471a1c
or ebp, 4
jmp 0x471a1c
or ebp, 8
jmp 0x471a1c
or ebp, 0x40
jmp 0x471a1c
add dword [esp + 0x98], 4
mov eax, dword [esp + 0x98]
mov eax, dword [eax - 4]
mov dword [esp + 0x34], eax
test eax, eax
jns 0x471a9d
or ebp, 1
neg dword [esp + 0x34]
mov eax, dword [esp + 0x94]
movsx eax, byte [eax]
mov dword [esp + 0x24], eax
inc dword [esp + 0x94]
jmp 0x471b04
mov dword [esp + 0x34], 0
push dword [esp + 0x24]
call fcn.0047b610
add esp, 4
test eax, eax
je 0x471b04
mov eax, dword [esp + 0x34]
mov ecx, dword [esp + 0x24]
lea eax, [eax + eax*4]
lea eax, [ecx + eax*2 - 0x30]
mov dword [esp + 0x34], eax
mov eax, dword [esp + 0x94]
movsx eax, byte [eax]
mov dword [esp + 0x24], eax
inc dword [esp + 0x94]
push dword [esp + 0x24]
call fcn.0047b610
add esp, 4
test eax, eax
jne 0x471acc
xor eax, eax
mov dword [esp + 0x3c], eax
cmp dword [esp + 0x24], 0x2e
jne 0x471bfe
or ebp, 0x80
mov ecx, dword [esp + 0x94]
movsx ecx, byte [ecx]
mov dword [esp + 0x24], ecx
inc dword [esp + 0x94]
cmp ecx, 0x2a
jne 0x471b73
add dword [esp + 0x98], 4
mov ecx, dword [esp + 0x98]
mov ecx, dword [ecx - 4]
mov dword [esp + 0x3c], ecx
cmp ecx, eax
jns 0x471b59
and ebp, 0xffffff7f
mov dword [esp + 0x3c], eax
mov eax, dword [esp + 0x94]
movsx eax, byte [eax]
mov dword [esp + 0x24], eax
inc dword [esp + 0x94]
jmp 0x471bfe
push dword [esp + 0x24]
call fcn.0047b610
add esp, 4
test eax, eax
je 0x471bfe
mov eax, dword [esp + 0x3c]
mov ecx, dword [esp + 0x24]
lea eax, [eax + eax*4]
lea eax, [ecx + eax*2 - 0x30]
mov dword [esp + 0x3c], eax
mov eax, dword [esp + 0x94]
movsx eax, byte [eax]
mov dword [esp + 0x24], eax
inc dword [esp + 0x94]
push dword [esp + 0x24]
call fcn.0047b610
add esp, 4
test eax, eax
je 0x471bfe
jmp 0x471b83
or ebp, 0x10
mov eax, dword [esp + 0x94]
movsx eax, byte [eax]
mov dword [esp + 0x24], eax
inc dword [esp + 0x94]
cmp eax, 0x6c
jne 0x471bfe
and ebp, 0xffffffef
or ebp, 0x10000
mov eax, dword [esp + 0x94]
movsx eax, byte [eax]
mov dword [esp + 0x24], eax
inc dword [esp + 0x94]
mov eax, dword [esp + 0x24]
cmp eax, 0x6c
je 0x471bbd
cmp eax, 0x68
je 0x471c1d
cmp eax, 0x4c
je 0x471c3a
cmp eax, 0x4e
je 0x471c57
cmp eax, 0x46
je 0x471c74
jmp 0x471c94
or ebp, 0x800
mov eax, dword [esp + 0x94]
movsx eax, byte [eax]
mov dword [esp + 0x24], eax
inc dword [esp + 0x94]
jmp 0x471bfe
or ebp, 0x20
mov eax, dword [esp + 0x94]
movsx eax, byte [eax]
mov dword [esp + 0x24], eax
inc dword [esp + 0x94]
jmp 0x471bfe
or ebp, 0x2000
mov eax, dword [esp + 0x94]
movsx eax, byte [eax]
mov dword [esp + 0x24], eax
inc dword [esp + 0x94]
jmp 0x471bfe
or ebp, 0x4000
mov eax, dword [esp + 0x94]
movsx eax, byte [eax]
mov dword [esp + 0x24], eax
inc dword [esp + 0x94]
jmp 0x471bfe
mov dword [esp + 0x30], 0
mov eax, dword [esp + 0x24]
cmp eax, 0x73
je 0x471d50
cmp eax, 0x53
je 0x471d79
cmp eax, 0x25
je 0x471e3f
cmp eax, 0x63
je 0x471e59
cmp eax, 0x43
je 0x471e8a
cmp eax, 0x64
je 0x471f18
cmp eax, 0x69
je 0x471f18
cmp eax, 0x62
je 0x471f74
cmp eax, 0x6f
je 0x471f7e
cmp eax, 0x75
je 0x471f95
cmp eax, 0x70
je 0x471fbd
cmp eax, 0x58
je 0x471fe4
cmp eax, 0x78
je 0x471fea
cmp eax, 0x66
je 0x4721fe
cmp eax, 0x65
je 0x4721fe
cmp eax, 0x45
je 0x4721fe
cmp eax, 0x67
je 0x4721fe
cmp eax, 0x47
je 0x4721fe
cmp eax, 0x6e
je 0x472257
jmp 0x472498
mov eax, ebp
test al, 0x10
jne 0x471d7f
test ah, 8
jne 0x471d9c
or ebp, 0x800
lea eax, [esp + 0x98]
push eax
push ebp
call fcn.00471908
test eax, eax
mov dword [esp + 0x68], eax
jne 0x471dbb
jmp 0x471db2
mov eax, ebp
test al, 0x10
je 0x471d97
lea eax, [esp + 0x98]
push eax
push ebp
call fcn.00471908
test eax, eax
mov dword [esp + 0x6c], eax
jne 0x471df2
jmp 0x471de9
test ah, 8
je 0x471dcd
lea eax, [esp + 0x98]
push eax
push ebp
call fcn.00471908
test eax, eax
mov dword [esp + 0x68], eax
jne 0x471dbb
mov eax, dword [0x493ba0]
mov dword [esp + 0x68], eax
push dword [esp + 0x68]
call fcn.004716c0
mov dword [esp + 0x78], eax
add esp, 4
jmp 0x471e02
or ebp, 0x10
lea eax, [esp + 0x98]
push eax
push ebp
call fcn.00471908
test eax, eax
mov dword [esp + 0x6c], eax
jne 0x471df2
mov eax, dword [0x493b94]
mov dword [esp + 0x6c], eax
push dword [esp + 0x6c]
call fcn.0047b6a0
mov dword [esp + 0x78], eax
add esp, 4
test ebp, 0x10
je 0x471e10
or ebp, 0x8000
test ebp, 0x80
je 0x472286
mov eax, dword [esp + 0x3c]
cmp eax, dword [esp + 0x74]
jge 0x471e2a
mov dword [esp + 0x74], eax
xor eax, eax
cmp dword [esp + 0x74], eax
jns 0x472286
mov dword [esp + 0x74], eax
jmp 0x472286
mov byte [esp + 0x40], 0x25
lea eax, [esp + 0x40]
mov dword [esp + 0x68], eax
mov dword [esp + 0x74], 1
jmp 0x472286
mov eax, ebp
test al, 0x10
jne 0x471e90
test ah, 8
jne 0x471eb7
or ebp, 0x800
add dword [esp + 0x98], 4
mov eax, dword [esp + 0x98]
mov al, byte [eax - 4]
mov byte [esp + 0x40], al
lea eax, [esp + 0x40]
mov dword [esp + 0x68], eax
jmp 0x471efd
mov eax, ebp
test al, 0x10
je 0x471eb2
add dword [esp + 0x98], 4
mov eax, dword [esp + 0x98]
mov ax, word [eax - 4]
mov word [esp + 0x70], ax
lea eax, [esp + 0x70]
mov dword [esp + 0x6c], eax
jmp 0x471efd
test ah, 8
je 0x471ed7
add dword [esp + 0x98], 4
mov eax, dword [esp + 0x98]
mov al, byte [eax - 4]
mov byte [esp + 0x40], al
lea eax, [esp + 0x40]
mov dword [esp + 0x68], eax
jmp 0x471efd
or ebp, 0x10
add dword [esp + 0x98], 4
mov eax, dword [esp + 0x98]
mov ax, word [eax - 4]
mov word [esp + 0x70], ax
lea eax, [esp + 0x70]
mov dword [esp + 0x6c], eax
test ebp, 0x10
je 0x471f0b
or ebp, 0x8000
mov dword [esp + 0x74], 1
jmp 0x472286
mov dword [esp + 0x78], 0xa
lea eax, [esp + 0x98]
push eax
push ebp
call fcn.00471878
mov dword [esp + 0x28], eax
mov dword [esp + 0x2c], edx
test edx, edx
jg 0x471f59
jl 0x471f40
test eax, eax
jae 0x471f59
mov dword [esp + 0x60], 1
neg edx
neg eax
sbb edx, 0
mov dword [esp + 0x28], eax
mov dword [esp + 0x2c], edx
jmp 0x471f61
mov dword [esp + 0x60], 0
push dword [esp + 0x60]
push ebp
call fcn.00471918
mov dword [esp + 0x64], eax
jmp 0x47205a
mov dword [esp + 0x78], 2
jmp 0x471f9d
mov eax, 8
mov dword [esp + 0x78], eax
test ebp, eax
je 0x471f9d
mov dword [esp + 0x64], 0x493bab
jmp 0x471f9d
mov dword [esp + 0x78], 0xa
lea eax, [esp + 0x98]
push eax
mov eax, ebp
or ah, 2
push eax
call fcn.00471878
mov dword [esp + 0x28], eax
mov dword [esp + 0x2c], edx
jmp 0x47205a
and ebp, 0xfffff7ff
mov eax, ebp
test al, 0x80
jne 0x471fde
mov dword [esp + 0x3c], 8
test ah, 4
je 0x471fde
mov dword [esp + 0x3c], 0xd
or ebp, 0x40
or ebp, 0x100
mov dword [esp + 0x78], 0x10
lea eax, [esp + 0x98]
push eax
mov ecx, ebp
or ch, 2
push ecx
call fcn.00471878
mov dword [esp + 0x28], eax
mov dword [esp + 0x2c], edx
mov eax, ebp
test ah, 4
je 0x47202d
lea ecx, [esp + 0x98]
push ecx
push eax
call fcn.00471878
and eax, 0xffff
xor edx, edx
mov dword [esp + 0x30], eax
mov eax, ebp
test al, 8
je 0x47205a
mov ebx, dword [esp + 0x30]
xor ecx, ecx
or ebx, dword [esp + 0x28]
or ecx, dword [esp + 0x2c]
or ecx, ebx
je 0x47205a
test ah, 1
je 0x472051
mov eax, 0x493bb0
jmp 0x472056
mov eax, 0x493bad
mov dword [esp + 0x64], eax
test ebp, 0x80
je 0x47206f
cmp dword [esp + 0x24], 0x70
je 0x47206f
and ebp, 0xffffffbf
lea eax, [esp + 0x5f]
mov dword [esp + 0x7c], eax
mov eax, dword [esp + 0x30]
xor ecx, ecx
or eax, dword [esp + 0x28]
or ecx, dword [esp + 0x2c]
or ecx, eax
je 0x472161
mov eax, ebp
and eax, 0x400
mov dword [esp + 0x10], eax
mov eax, dword [esp + 0x78]
cdq
mov dword [esp + 0x14], eax
mov dword [esp + 0x18], edx
mov eax, ebp
and eax, 0x100
mov dword [esp + 0x1c], eax
cmp dword [esp + 0x10], 0
je 0x4720df
mov eax, dword [esp + 0x7c]
lea ecx, [esp + 0x57]
cmp eax, ecx
jne 0x4720df
mov byte [esp + 0x80], 0x3a
mov eax, dword [esp + 0x30]
xor ecx, ecx
mov dword [esp + 0x28], eax
mov dword [esp + 0x2c], ecx
mov dword [esp + 0x30], ecx
jmp 0x472139
mov edx, dword [esp + 0x2c]
mov eax, dword [esp + 0x28]
mov ecx, dword [esp + 0x18]
mov ebx, dword [esp + 0x14]
call fcn.0047b718
add ebx, 0x30
adc ecx, 0
mov byte [esp + 0x80], bl
cmp bl, 0x39
jle 0x47211c
cmp dword [esp + 0x1c], 1
sbb eax, eax
and eax, 0x20
add eax, 7
add byte [esp + 0x80], al
mov ecx, dword [esp + 0x18]
mov ebx, dword [esp + 0x14]
mov eax, dword [esp + 0x28]
mov edx, dword [esp + 0x2c]
call fcn.0047b718
mov dword [esp + 0x28], eax
mov dword [esp + 0x2c], edx
mov al, byte [esp + 0x80]
mov ecx, dword [esp + 0x7c]
mov byte [ecx], al
dec dword [esp + 0x7c]
mov eax, dword [esp + 0x30]
xor ecx, ecx
or eax, dword [esp + 0x28]
or ecx, dword [esp + 0x2c]
or ecx, eax
je 0x472170
jmp 0x4720b0
cmp dword [esp + 0x3c], 0
jne 0x472176
test ebp, 0x80
je 0x472176
inc dword [esp + 0x7c]
jmp 0x47217b
mov byte [esp + 0x5f], 0x30
lea eax, [esp + 0x60]
sub eax, dword [esp + 0x7c]
mov dword [esp + 0x74], eax
mov eax, 0x20
cmp dword [esp + 0x3c], eax
jle 0x472196
mov dword [esp + 0x3c], eax
mov eax, dword [esp + 0x3c]
cmp dword [esp + 0x74], eax
jge 0x4721f1
mov ebx, eax
sub ebx, dword [esp + 0x74]
mov eax, ebx
dec ebx
test eax, eax
je 0x4721e9
mov edx, ebp
and edx, 0x400
dec dword [esp + 0x7c]
test edx, edx
je 0x4721c9
mov eax, dword [esp + 0x7c]
lea ecx, [esp + 0x57]
cmp eax, ecx
je 0x4721cd
xor eax, eax
jmp 0x4721d2
mov eax, 1
cmp eax, 1
sbb eax, eax
and al, 0xf6
add eax, 0x3a
mov ecx, dword [esp + 0x7c]
mov byte [ecx], al
mov eax, ebx
dec ebx
test eax, eax
jne 0x4721b5
mov eax, dword [esp + 0x3c]
mov dword [esp + 0x74], eax
mov eax, dword [esp + 0x7c]
mov dword [esp + 0x68], eax
jmp 0x472286
cmp dword [0x49b408], 0
jne 0x472214
push 0x493bb3
call fcn.0047b7f0
add esp, 4
push dword [esp + 0x34]
lea eax, [esp + 0x78]
push eax
lea eax, [esp + 0x48]
push eax
push dword [esp + 0xa4]
push dword [esp + 0x4c]
push ebp
push dword [esp + 0x3c]
call dword [0x49b408]
mov dword [esp + 0x80], eax
add dword [esp + 0xb4], 8
lea eax, [esp + 0x5c]
mov dword [esp + 0x84], eax
add esp, 0x1c
jmp 0x472286
lea eax, [esp + 0x98]
push eax
push ebp
call fcn.00471908
mov edx, eax
mov eax, ebp
test ah, 8
je 0x47227b
mov ax, word [esp + 0x20]
mov word [edx], ax
jmp 0x472454
mov eax, dword [esp + 0x20]
mov dword [edx], eax
jmp 0x472454
push dword [esp + 0x64]
call fcn.004716c0
mov ebx, eax
mov eax, eax
add eax, dword [esp + 0x78]
add dword [esp + 0x24], eax
mov ecx, dword [esp + 0x38]
sub ecx, eax
mov dword [esp + 0x3c], ecx
add esp, 4
test ebp, 0x40
je 0x4722e9
mov eax, dword [esp + 0x64]
cmp byte [eax], 0
je 0x4722e9
push dword [esp + 0x90]
xor eax, eax
mov ecx, dword [esp + 0x68]
mov al, byte [ecx]
push eax
call dword [esp + 0x94]
add esp, 8
cmp eax, 0xffffffff
je 0x472498
inc dword [esp + 0x64]
mov eax, dword [esp + 0x64]
cmp byte [eax], 0
jne 0x4722b9
mov eax, dword [esp + 0x38]
test eax, eax
jle 0x472334
add dword [esp + 0x20], eax
mov eax, ebp
test al, 1
jne 0x472334
mov ebx, eax
and ebx, 0x40
dec dword [esp + 0x38]
cmp dword [esp + 0x38], 0
js 0x472334
push dword [esp + 0x90]
cmp ebx, 1
sbb eax, eax
and al, 0xf0
add eax, 0x30
push eax
call dword [esp + 0x94]
add esp, 8
cmp eax, 0xffffffff
jne 0x472303
jmp 0x472498
mov eax, dword [esp + 0x64]
cmp byte [eax], 0
je 0x47236d
push dword [esp + 0x90]
xor eax, eax
mov ecx, dword [esp + 0x68]
mov al, byte [ecx]
push eax
call dword [esp + 0x94]
add esp, 8
cmp eax, 0xffffffff
je 0x472498
inc dword [esp + 0x64]
mov eax, dword [esp + 0x64]
cmp byte [eax], 0
jne 0x47233d
test ebp, 0x8000
je 0x472412
xor ebx, ebx
cmp dword [esp + 0x74], ebx
jle 0x472441
mov esi, dword [esp + 0x6c]
push dword [esi]
lea ecx, [esp + 0x88]
push ecx
call fcn.0047b7f8
add esp, 8
mov edi, eax
mov ecx, 1
cmp edi, ecx
jl 0x472498
push dword [esp + 0x90]
xor edx, edx
mov dl, byte [esp + 0x88]
push edx
call dword [esp + 0x94]
add esp, 8
mov ecx, 0xffffffff
cmp eax, ecx
je 0x472498
cmp edi, 2
jne 0x472403
push dword [esp + 0x90]
xor edx, edx
mov dl, byte [esp + 0x89]
push edx
call dword [esp + 0x94]
add esp, 8
mov ecx, 0xffffffff
cmp eax, ecx
je 0x472498
inc dword [esp + 0x20]
add esi, 2
inc ebx
cmp ebx, dword [esp + 0x74]
jge 0x472441
jmp 0x472389
xor ebx, ebx
cmp dword [esp + 0x74], ebx
jle 0x472441
mov esi, dword [esp + 0x68]
push dword [esp + 0x90]
xor ecx, ecx
mov cl, byte [esi]
push ecx
call dword [esp + 0x94]
add esp, 8
cmp eax, 0xffffffff
je 0x472498
inc esi
inc ebx
cmp ebx, dword [esp + 0x74]
jl 0x47241e
test ebp, 1
je 0x472454
dec dword [esp + 0x38]
cmp dword [esp + 0x38], 0
jns 0x472472
mov eax, dword [esp + 0x94]
movsx eax, byte [eax]
mov dword [esp + 0x24], eax
inc dword [esp + 0x94]
test eax, eax
je 0x47248c
jmp 0x471974
push dword [esp + 0x90]
push 0x20
call dword [esp + 0x94]
add esp, 8
cmp eax, 0xffffffff
jne 0x472449
jmp 0x472498
mov eax, dword [esp + 0x20]
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x78
ret
mov eax, 0xffffffff
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x78
ret