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

Disassembly:
mov ecx, dword [esp + 0xc]
sub esp, 0x34
test ecx, ecx
push ebx
push ebp
push esi
push edi
jl 0x10054090
mov ebp, dword [esp + 0x4c]
mov esi, dword [esp + 0x3e]
jmp 0x10053960
mov eax, dword [esp + 0x60]
mov edx, dword [eax + 0xc]
cmp edx, dword [esp + 0x64]
jge 0x10054090
mov eax, dword [esp + 0x54]
lea edi, [eax + 1]
mov dl, byte [eax]
inc eax
test dl, dl
jne 0x10053978
sub eax, edi
mov dword [esp + 0x2c], eax
mov al, byte [ecx + ebp]
mov byte [esp + 0x38], al
xor eax, eax
mov al, byte [ecx + ebp + 1]
mov dl, al
and dl, 1
xor edi, edi
mov byte [esp + 0x39], dl
shr eax, 2
and eax, 7
cmp eax, 7
ja case.default.0x100539ac
jmp dword [eax*4 + 0x100540a0]
mov dword [esp + 0x3a], 0xffffffff
jmp case.default.0x100539ac
mov al, byte [ecx + ebp + 1]
movzx edx, al
mov ebx, edx
shr ebx, 2
and ebx, 7
mov ebx, dword [ebx*4 + 0x10068290]
shr edx, 5
mov edx, dword [edx*4 + 0x10068290]
lea ebx, [ebx + ecx + 2]
and al, 0xe0
add edx, ebx
cmp al, 0xe0
jne 0x100539f5
mov al, byte [ebx + ebp + 2]
test al, al
jns 0x100539f5
inc edx
movzx eax, byte [edx + ebp]
xor ebx, ebx
mov bl, byte [ecx + ebp + 1]
shr eax, 6
shr ebx, 1
not ebx
and ebx, 1
imul eax, ebx
add eax, edx
mov dword [esp + 0x3a], eax
jmp case.default.0x100539ac
movzx edx, byte [ecx + ebp + 2]
mov eax, dword [esp + 0x48]
mov edx, dword [eax + edx*4]
jmp 0x10053adb
movzx ax, byte [ecx + ebp + 3]
movzx dx, byte [ecx + ebp + 2]
shl eax, 8
add eax, edx
movzx eax, ax
add eax, ecx
mov dword [esp + 0x3a], eax
jmp case.default.0x100539ac
movzx ax, byte [ecx + ebp + 3]
movzx dx, byte [ecx + ebp + 2]
shl eax, 8
add eax, edx
movzx edx, ax
mov eax, ecx
sub eax, edx
mov dword [esp + 0x3a], eax
jmp case.default.0x100539ac
movzx ax, byte [ecx + ebp + 3]
movzx dx, byte [ecx + ebp + 2]
shl eax, 8
add eax, edx
movzx eax, ax
lea edx, [eax + ecx + 0x10000]
jmp 0x10053adb
movzx ax, byte [ecx + ebp + 3]
movzx dx, byte [ecx + ebp + 2]
shl eax, 8
add eax, edx
movzx edx, ax
mov eax, ecx
sub eax, edx
sub eax, 0x10000
mov dword [esp + 0x3a], eax
jmp case.default.0x100539ac
mov al, byte [ecx + ebp + 4]
movzx ebx, byte [ecx + ebp + 3]
xor edx, edx
mov dl, al
and edx, 0x7f
shl edx, 8
add edx, ebx
movzx ebx, byte [ecx + ebp + 2]
shl edx, 8
add edx, ebx
test al, al
mov dword [esp + 0x3a], edx
jns case.default.0x100539ac
movzx eax, byte [ecx + ebp + 5]
shl eax, 0x17
add edx, eax
mov edi, 1
mov dword [esp + 0x3a], edx
movzx eax, byte [ecx + ebp + 1]
mov edx, eax
shr edx, 5
cmp edx, 7
ja case.default.0x10053af2
jmp dword [edx*4 + 0x100540c0]
or esi, 0xffffffff
jmp 0x10053c71
mov dl, byte [ecx + ebp + 1]
movzx esi, dl
mov ebx, esi
shr ebx, 2
and ebx, 7
mov ebx, dword [ebx*4 + 0x10068290]
shr esi, 5
add ebx, dword [esi*4 + 0x10068290]
shr eax, 1
add ebx, edi
lea ecx, [ebx + ecx + 2]
movzx esi, byte [ecx + ebp]
shr esi, 6
not eax
and eax, 1
and dl, 0x1c
imul esi, eax
neg dl
sbb edx, edx
neg edx
imul esi, edx
add esi, ecx
jmp 0x10053c71
shr eax, 2
and eax, 7
mov edx, dword [eax*4 + 0x10068290]
add edx, edi
add edx, ebp
movzx eax, byte [edx + ecx + 2]
mov ecx, dword [esp + 0x48]
mov esi, dword [ecx + eax*4 + 0x400]
jmp 0x10053c71
shr eax, 2
and eax, 7
mov edx, dword [eax*4 + 0x10068290]
add edx, edi
lea eax, [edx + ecx + 2]
movzx dx, byte [eax + ebp + 1]
movzx ax, byte [eax + ebp]
shl edx, 8
add edx, eax
movzx esi, dx
add esi, ecx
jmp 0x10053c71
shr eax, 2
and eax, 7
mov edx, dword [eax*4 + 0x10068290]
add edx, edi
lea eax, [edx + ecx + 2]
movzx dx, byte [eax + ebp + 1]
movzx ax, byte [eax + ebp]
shl edx, 8
add edx, eax
movzx edx, dx
sub ecx, edx
mov esi, ecx
jmp 0x10053c71
shr eax, 2
and eax, 7
mov eax, dword [eax*4 + 0x10068290]
add eax, edi
lea eax, [eax + ecx + 2]
movzx dx, byte [eax + ebp + 1]
movzx ax, byte [eax + ebp]
shl edx, 8
add edx, eax
movzx edx, dx
lea esi, [edx + ecx + 0x10000]
jmp 0x10053c71
shr eax, 2
and eax, 7
mov eax, dword [eax*4 + 0x10068290]
add eax, edi
lea eax, [eax + ecx + 2]
movzx dx, byte [eax + ebp + 1]
movzx ax, byte [eax + ebp]
shl edx, 8
add edx, eax
movzx edx, dx
sub ecx, edx
sub ecx, 0x10000
mov esi, ecx
jmp 0x10053c71
shr eax, 2
and eax, 7
mov eax, dword [eax*4 + 0x10068290]
add eax, edi
lea eax, [eax + ecx + 2]
mov cl, byte [eax + ebp + 2]
movzx esi, byte [eax + ebp + 1]
xor edx, edx
mov dl, cl
and edx, 0x7f
shl edx, 8
add edx, esi
movzx esi, byte [eax + ebp]
shl edx, 8
add esi, edx
test cl, cl
mov dword [esp + 0x3e], esi
jns case.default.0x10053af2
movzx eax, byte [eax + ebp + 3]
shl eax, 0x17
add esi, eax
mov dword [esp + 0x3e], esi
mov ecx, dword [esp + 0x2c]
mov edx, dword [esp + 0x54]
mov al, byte [esp + 0x38]
lea edi, [ecx + edx]
mov byte [edi], al
lea eax, [edx + 1]
push 0
mov byte [eax + ecx], 0
mov dword [esp + 0x54], eax
mov eax, dword [esp + 0x6c]
push eax
push 0
push 0
push 0
push ecx
mov ecx, dword [esp + 0x74]
push ecx
push edx
mov dword [esp + 0x3c], edi
call fcn.10053530
add esp, 0x20
test eax, eax
je 0x10054083
mov al, byte [esp + 0x39]
test al, al
je 0x1005403d
mov esi, dword [esp + 0x5c]
mov ebx, dword [esp + 0x6c]
mov ebp, dword [esp + 0x54]
mov edi, dword [esp + 0x68]
mov eax, esi
mov dword [esp + 0x18], ebx
lea ecx, [eax + 1]
mov edi, edi
mov dl, byte [eax]
inc eax
test dl, dl
jne 0x10053ce0
sub eax, ecx
mov ecx, eax
mov eax, dword [esp + 0x2c]
sub eax, ecx
lea edx, [ecx + esi - 1]
mov dword [esp + 0x30], edx
cdq
xor eax, edx
sub eax, edx
cmp eax, ebx
jg 0x1005403d
mov eax, dword [esp + 0x1c]
cmp dword [esp + 0x54], eax
ja 0x10053f4f
mov ecx, dword [esp + 0x50]
mov dword [esp + 0x14], ecx
lea esp, [esp]
cmp esi, dword [esp + 0x30]
ja 0x10053f4f
test edi, edi
jle 0x10053f4f
mov cl, byte [ebp]
movzx eax, byte [esi]
mov al, byte [eax*4 + str._________________________________________._0123456789:_____abcdefghijklmnopqrstuvwxyz____abcdefghijklmnopqrstuvwxyz]
movzx edx, cl
mov dl, byte [edx*4 + str._________________________________________._0123456789:_____abcdefghijklmnopqrstuvwxyz____abcdefghijklmnopqrstuvwxyz]
cmp dl, al
mov byte [esp + 0x50], dl
mov byte [esp + 0x13], al
jne 0x10053d89
mov edx, dword [esp + 0x14]
movzx ebx, byte [esi + 1]
movzx edx, byte [edx]
mov ebx, dword [ebx*4 + str._________________________________________._0123456789:_____abcdefghijklmnopqrstuvwxyz____abcdefghijklmnopqrstuvwxyz]
cmp ebx, dword [edx*4 + str._________________________________________._0123456789:_____abcdefghijklmnopqrstuvwxyz____abcdefghijklmnopqrstuvwxyz]
jne 0x10053d85
cmp cl, byte [esi]
je 0x10053d75
dec edi
mov eax, dword [esp + 0x14]
inc ebp
inc eax
mov dword [esp + 0x14], eax
inc esi
jmp 0x10053f40
mov dl, byte [esp + 0x50]
mov ebx, dword [esp + 0x14]
mov bl, byte [ebx]
movzx ebx, bl
mov ebx, dword [ebx*4 + str._________________________________________._0123456789:_____abcdefghijklmnopqrstuvwxyz____abcdefghijklmnopqrstuvwxyz]
movzx eax, al
cmp eax, ebx
mov dword [esp + 0x28], eax
mov dword [esp + 0x20], ebx
jne 0x10053dc8
movzx ebx, byte [esi + 1]
movzx eax, byte [ebp + 2]
mov ebx, dword [ebx*4 + str._________________________________________._0123456789:_____abcdefghijklmnopqrstuvwxyz____abcdefghijklmnopqrstuvwxyz]
cmp ebx, dword [eax*4 + str._________________________________________._0123456789:_____abcdefghijklmnopqrstuvwxyz____abcdefghijklmnopqrstuvwxyz]
jne 0x10053dc8
sub edi, 4
jmp 0x10053f30
mov al, byte [esi + 1]
movzx ebx, al
mov ebx, dword [ebx*4 + str._________________________________________._0123456789:_____abcdefghijklmnopqrstuvwxyz____abcdefghijklmnopqrstuvwxyz]
movzx edx, dl
cmp edx, ebx
mov dword [esp + 0x34], edx
mov dword [esp + 0x24], ebx
jne 0x10053e5a
mov edx, dword [esp + 0x20]
cmp dword [esp + 0x28], edx
jne 0x10053e2b
movzx edx, byte [ebp + 2]
movzx ebx, byte [esi + 2]
mov edx, dword [edx*4 + str._________________________________________._0123456789:_____abcdefghijklmnopqrstuvwxyz____abcdefghijklmnopqrstuvwxyz]
cmp edx, dword [ebx*4 + str._________________________________________._0123456789:_____abcdefghijklmnopqrstuvwxyz____abcdefghijklmnopqrstuvwxyz]
jne 0x10053e2b
sub edi, 4
cmp cl, al
je 0x10053e0e
dec edi
mov eax, dword [esp + 0x14]
mov al, byte [eax]
cmp byte [esi], al
je 0x10053e19
dec edi
mov ecx, dword [esp + 0x14]
add ebp, 2
add ecx, 2
add esi, 2
jmp 0x10053f36
mov edx, dword [esp + 0x34]
mov ebx, dword [esp + 0x24]
cmp edx, ebx
jne 0x10053e5a
movzx edx, byte [esi + 2]
mov ebx, dword [esp + 0x20]
cmp ebx, dword [edx*4 + str._________________________________________._0123456789:_____abcdefghijklmnopqrstuvwxyz____abcdefghijklmnopqrstuvwxyz]
jne 0x10053e5a
sub edi, 5
cmp cl, al
je 0x10053e52
sub edi, 2
add esi, 2
jmp 0x10053f30
mov edx, dword [esp + 0x20]
cmp dword [esp + 0x28], edx
jne 0x10053e8e
mov edx, dword [esp + 0x14]
cmp edx, dword [esp + 0x1c]
je 0x10053e7f
movzx edx, byte [ebp + 2]
mov ebx, dword [esp + 0x24]
cmp dword [edx*4 + str._________________________________________._0123456789:_____abcdefghijklmnopqrstuvwxyz____abcdefghijklmnopqrstuvwxyz], ebx
jne 0x10053e8e
mov eax, dword [esp + 0x14]
mov al, byte [eax]
mov cl, byte [esi]
sub edi, 5
cmp cl, al
jmp 0x10053ef3
mov dl, byte [esp + 0x50]
cmp dl, byte [esp + 0x13]
jne 0x10053eb7
cmp cl, byte [esi]
je 0x10053e9f
sub edi, 2
test dl, dl
je 0x10053f4f
mov eax, dword [esp + 0x14]
inc ebp
inc eax
mov dword [esp + 0x14], eax
inc esi
jmp 0x10053f40
mov ebx, dword [esp + 0x24]
cmp dword [esp + 0x34], ebx
jne 0x10053eda
sub edi, 7
cmp cl, al
je 0x10053ecb
sub edi, 2
mov edx, dword [esp + 0x14]
inc ebp
inc edx
mov dword [esp + 0x14], edx
add esi, 2
jmp 0x10053f3a
mov ecx, dword [esp + 0x28]
mov edx, dword [esp + 0x20]
cmp ecx, edx
mov ecx, dword [esp + 0x14]
jne 0x10053f05
mov al, byte [esi]
mov dl, byte [ecx]
sub edi, 7
cmp al, dl
je 0x10053ef8
sub edi, 2
mov ecx, dword [esp + 0x14]
inc esi
add ebp, 2
add ecx, 2
jmp 0x10053f36
mov cl, byte [ecx]
cmp cl, al
je 0x10053f25
cmp edx, ebx
je 0x10053f25
cmp ebp, dword [esp + 0x1c]
je 0x10053f20
cmp esi, dword [esp + 0x30]
je 0x10053f20
sub edi, 0xf
jmp 0x10053f2f
sub edi, 7
jmp 0x10053f2f
sub edi, 9
cmp cl, al
je 0x10053f2f
sub edi, 2
inc esi
mov ecx, dword [esp + 0x14]
inc ebp
inc ecx
mov dword [esp + 0x14], ecx
dec dword [esp + 0x18]
je 0x10053f4c
cmp ebp, dword [esp + 0x1c]
jbe 0x10053d20
jmp 0x10053f4f
or edi, 0xffffffff
xor ebx, ebx
test edi, edi
setg bl
test ebx, ebx
je 0x10053fb3
mov al, byte [esi]
test al, al
je 0x10053f94
cmp al, 0x20
je 0x10053f94
movzx edx, al
push edx
call fcn.100579cb
add esp, 4
test eax, eax
jne 0x10053f94
cmp edi, 8
jle 0x10053fb1
mov al, byte [esi + 1]
test al, al
je 0x10053f94
cmp al, 0x20
je 0x10053f94
movzx eax, al
push eax
call fcn.100579cb
add esp, 4
test eax, eax
je 0x10053fb1
mov eax, dword [esp + 0x2c]
mov edx, dword [esp + 0x5c]
sub eax, esi
add eax, edx
cdq
xor eax, edx
sub eax, edx
cmp eax, 3
jge 0x10053fb1
mov ebx, 1
jmp 0x10053fb3
xor ebx, ebx
mov edx, dword [esp + 0x30]
lea eax, [edx + 1]
xor ecx, ecx
cmp esi, eax
jae 0x10053fcf
mov eax, esi
sub eax, edx
dec eax
cdq
mov ecx, eax
xor ecx, edx
sub ecx, edx
shl ecx, 3
mov edx, dword [esp + 0x1c]
lea eax, [edx + 1]
cmp ebp, eax
jae 0x10053fe7
mov eax, ebp
sub eax, edx
dec eax
cdq
xor eax, edx
sub eax, edx
lea ecx, [ecx + eax*8]
test ecx, ecx
je 0x10053ff5
mov edx, dword [esp + 0x18]
dec edx
jne 0x10053ff5
or edi, 0xffffffff
sub edi, ecx
test ebx, ebx
je 0x1005403d
xor eax, eax
test edi, edi
setg al
test eax, eax
je 0x1005403d
mov eax, dword [esp + 0x68]
mov esi, dword [esp + 0x60]
sub eax, edi
sets cl
dec cl
push 4
lea edx, [esp + 0x54]
push edx
push 0
and ecx, eax
mov eax, dword [esp + 0x60]
push eax
push esi
mov byte [esp + 0x64], cl
call fcn.10016230
mov eax, dword [esp + 0x78]
mov ecx, dword [esi + 0xc]
add esp, 0x14
cmp ecx, eax
jge 0x10054097
mov ecx, dword [esp + 0x6c]
mov edx, dword [esp + 0x68]
mov eax, dword [esp + 0x64]
push ecx
mov ecx, dword [esp + 0x64]
push edx
mov edx, dword [esp + 0x64]
push eax
mov eax, dword [esp + 0x64]
push ecx
mov ecx, dword [esp + 0x64]
push edx
mov edx, dword [esp + 0x4e]
push eax
mov eax, dword [esp + 0x64]
push ecx
mov ecx, dword [esp + 0x64]
push edx
push eax
push ecx
call fcn.10053940
mov ebp, dword [esp + 0x74]
mov esi, dword [esp + 0x66]
mov edi, dword [esp + 0x44]
add esp, 0x28
test esi, esi
mov byte [edi], 0
mov ecx, esi
jge 0x10053960
mov edx, dword [esp + 0x60]
mov eax, dword [edx + 0xc]
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x34
ret