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

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0x114
mov eax, dword [0x1822b00c]
xor eax, esp
mov dword [esp + 0x110], eax
mov edx, dword [ebp + 0x10]
xor ecx, ecx
and dword [esp + 0x38], ecx
push ebx
mov ebx, dword [ebp + 8]
push esi
mov esi, dword [ebp + 0xc]
push edi
xor edi, edi
mov dword [esp + 0x30], ebx
test byte [ebx + 0x15], 2
mov dword [esp + 0x18], edx
mov dword [esp + 0x54], ecx
mov dword [esp + 0x24], edi
je 0x180e6ee8
mov eax, dword [edx]
add edx, 4
mov dword [esp + 0x18], edx
mov dword [esp + 0x44], eax
mov byte [esp + 0x15], 1
jmp 0x180e6eec
mov byte [esp + 0x15], cl
movsx eax, byte [esi]
test eax, eax
je case.default.0x180e723c
fldz
fstp qword [esp + 0x70]
fld qword [0x1821f968]
fstp qword [esp + 0x88]
fld qword [0x1821f960]
fstp qword [esp + 0x98]
fld1
fstp qword [esp + 0x78]
fld qword [0x1821fa90]
fstp qword [esp + 0xa0]
fld qword [0x1821fa48]
fstp qword [esp + 0xa8]
fld qword [0x1821f9a0]
fstp qword [esp + 0x80]
fld qword [0x1821f978]
fstp qword [esp + 0xb0]
fld qword [0x1821fa20]
fstp qword [esp + 0xb8]
fld qword [0x1821f980]
fstp qword [esp + 0xc0]
mov dword [esp + 0x6c], 3
cmp eax, 0x25
je 0x180e6fa5
mov edi, esi
mov dword [esp + 0x24], edi
inc esi
mov al, byte [esi]
test al, al
je 0x180e6f89
cmp al, 0x25
jne 0x180e6f7e
mov eax, esi
sub eax, edi
push eax
push edi
push ebx
call fcn.180e8177
add esp, 0xc
cmp byte [esi], 0
je case.default.0x180e723c
mov edx, dword [esp + 0x18]
inc esi
mov dword [esp + 0x34], esi
movsx ecx, byte [esi]
test ecx, ecx
je 0x180e7fa1
xor al, al
mov byte [esp + 0x2f], al
xor eax, eax
mov byte [esp + 0x1f], al
mov bl, al
mov byte [esp + 0x13], al
mov bh, al
mov byte [esp + 0x17], al
mov byte [esp + 0x14], al
mov byte [esp + 0x12], al
mov dword [esp + 0x28], eax
or eax, 0xffffffff
mov dword [esp + 0x20], eax
cmp ecx, 0x2c
jg 0x180e70b6
je 0x180e70ac
mov eax, ecx
sub eax, 0x20
je 0x180e70a2
sub eax, 1
je 0x180e7098
dec eax
sub eax, 1
je 0x180e708e
sub eax, 7
je 0x180e7025
sub eax, 1
jne 0x180e71f0
mov byte [esp + 0x14], 0x2b
jmp 0x180e71bd
cmp byte [esp + 0x15], 0
je 0x180e703d
mov ecx, dword [esp + 0x44]
call fcn.180e6ddb
mov esi, eax
mov dword [esp + 0x28], eax
jmp 0x180e704a
mov esi, dword [edx]
add edx, 4
mov dword [esp + 0x18], edx
mov dword [esp + 0x28], esi
test esi, esi
jns 0x180e7068
mov byte [esp + 0x12], 1
cmp esi, 0x80000001
jl 0x180e7063
neg esi
mov dword [esp + 0x28], esi
jmp 0x180e7068
and dword [esp + 0x28], 0
mov esi, dword [esp + 0x34]
mov al, byte [esi + 1]
movsx ecx, al
cmp al, 0x2e
je 0x180e71b9
cmp al, 0x6c
je 0x180e71b9
inc esi
mov bl, 1
mov dword [esp + 0x34], esi
jmp 0x180e71b9
mov byte [esp + 0x13], 1
jmp 0x180e71bd
mov byte [esp + 0x1f], 1
jmp 0x180e71bd
mov byte [esp + 0x14], 0x20
jmp 0x180e71bd
mov byte [esp + 0x17], 0x2c
jmp 0x180e71bd
cmp ecx, 0x2d
je 0x180e71b4
cmp ecx, 0x2e
je 0x180e7132
cmp ecx, 0x30
je 0x180e7128
jle 0x180e71f0
cmp ecx, 0x39
jg 0x180e71d2
mov edx, dword [esp + 0x34]
lea esi, [ecx - 0x30]
inc edx
mov dword [esp + 0x34], edx
movsx ecx, byte [edx]
cmp ecx, 0x30
jl 0x180e7106
cmp ecx, 0x39
ja 0x180e7102
imul eax, esi, 0xa
lea esi, [ecx - 0x30]
add esi, eax
inc edx
movsx ecx, byte [edx]
cmp ecx, 0x30
jge 0x180e70ec
mov dword [esp + 0x34], edx
and esi, 0x7fffffff
mov dword [esp + 0x28], esi
cmp ecx, 0x2e
je 0x180e711e
cmp ecx, 0x6c
jne 0x180e71f0
mov esi, dword [esp + 0x34]
dec esi
jmp 0x180e71bd
mov byte [esp + 0x2f], 1
jmp 0x180e71bd
inc esi
mov dword [esp + 0x34], esi
movsx ecx, byte [esi]
cmp ecx, 0x2a
jne 0x180e7180
cmp byte [esp + 0x15], 0
je 0x180e7151
mov ecx, dword [esp + 0x44]
call fcn.180e6ddb
jmp 0x180e715a
mov eax, dword [edx]
add edx, 4
mov dword [esp + 0x18], edx
mov dword [esp + 0x20], eax
test eax, eax
jns 0x180e7176
cmp eax, 0x80000001
jl 0x180e7171
neg eax
mov dword [esp + 0x20], eax
jmp 0x180e7176
or dword [esp + 0x20], 0xffffffff
inc esi
mov dword [esp + 0x34], esi
movsx ecx, byte [esi]
jmp 0x180e71aa
xor eax, eax
cmp ecx, 0x30
jl 0x180e71a1
cmp ecx, 0x39
ja 0x180e719d
imul eax, eax, 0xa
add ecx, 0xffffffd0
add eax, ecx
inc esi
movsx ecx, byte [esi]
cmp ecx, 0x30
jge 0x180e7187
mov dword [esp + 0x34], esi
and eax, 0x7fffffff
mov dword [esp + 0x20], eax
cmp ecx, 0x6c
jne 0x180e71f0
jmp 0x180e7122
mov byte [esp + 0x12], 1
test bl, bl
jne 0x180e71f0
inc esi
mov dword [esp + 0x34], esi
movsx ecx, byte [esi]
test ecx, ecx
je 0x180e71f0
mov edx, dword [esp + 0x18]
jmp 0x180e6fe0
cmp ecx, 0x6c
jne 0x180e71f0
inc esi
mov bh, 1
mov dword [esp + 0x34], esi
movsx ecx, byte [esi]
cmp ecx, 0x6c
jne 0x180e71f0
inc esi
inc bh
mov dword [esp + 0x34], esi
movsx ecx, byte [esi]
mov eax, 0x181ea650
mov bl, 0x11
mov dword [esp + 0x40], eax
xor esi, esi
mov byte [esp + 0x16], bl
mov edx, eax
movsx eax, byte [edx]
cmp ecx, eax
je 0x180e721c
add edx, 6
inc esi
cmp edx, 0x181ea6da
jl 0x180e7203
mov ecx, dword [esp + 0x40]
jmp 0x180e7230
imul ecx, esi, 6
add ecx, 0x181ea650
mov dword [esp + 0x40], ecx
mov bl, byte [ecx + 3]
mov byte [esp + 0x16], bl
movzx eax, bl
cmp eax, 0x10
ja case.default.0x180e723c
jmp dword [eax*4 + 0x180e7fc8]
mov bh, 1
mov byte [esp + 0x17], 0
test byte [ecx + 2], 1
je 0x180e72aa
cmp byte [esp + 0x15], 0
je 0x180e7262
mov ecx, dword [esp + 0x44]
call fcn.180e6ddb
jmp 0x180e7288
mov eax, dword [esp + 0x18]
test bh, bh
je 0x180e727d
cmp bh, 2
jne 0x180e727d
mov esi, dword [eax]
add eax, 8
mov dword [esp + 0x18], eax
mov edi, dword [eax - 4]
jmp 0x180e728c
add eax, 4
mov dword [esp + 0x18], eax
mov eax, dword [eax - 4]
cdq
mov esi, eax
mov edi, edx
test edi, edi
jg 0x180e72a4
jl 0x180e7296
test esi, esi
jae 0x180e72a4
not esi
not edi
add esi, 1
mov cl, 0x2d
adc edi, 0
jmp 0x180e72e4
mov cl, byte [esp + 0x14]
jmp 0x180e72e8
cmp byte [esp + 0x15], 0
je 0x180e72c0
mov ecx, dword [esp + 0x44]
call fcn.180e6ddb
mov esi, eax
mov edi, edx
jmp 0x180e72e2
mov eax, dword [esp + 0x18]
test bh, bh
je 0x180e72d7
cmp bh, 2
jne 0x180e72d7
mov esi, dword [eax]
add eax, 8
mov edi, dword [eax - 4]
jmp 0x180e72de
mov esi, dword [eax]
add eax, 4
xor edi, edi
mov dword [esp + 0x18], eax
xor cl, cl
mov byte [esp + 0x14], cl
mov eax, esi
or eax, edi
jne 0x180e72f2
mov byte [esp + 0x13], al
cmp byte [esp + 0x2f], 0
je 0x180e7316
xor eax, eax
test cl, cl
mov ecx, dword [esp + 0x28]
setne al
sub ecx, eax
mov eax, dword [esp + 0x20]
cmp eax, ecx
jge 0x180e731a
mov eax, ecx
mov dword [esp + 0x20], eax
jmp 0x180e731a
mov eax, dword [esp + 0x20]
cmp eax, 0x25
jge 0x180e7333
push 0x46
pop ebx
lea eax, [esp + 0xd0]
mov dword [esp + 0x3c], ebx
mov dword [esp + 0x38], eax
jmp 0x180e737c
cdq
mov ebx, eax
mov ecx, edx
push 0xa
pop eax
add ebx, eax
mov dword [esp + 0x3c], ebx
adc ecx, 0
cmp byte [esp + 0x17], 0
je 0x180e735d
mov eax, dword [esp + 0x20]
cdq
idiv dword [esp + 0x6c]
cdq
add ebx, eax
mov dword [esp + 0x3c], ebx
adc ecx, edx
push ecx
mov ecx, dword [esp + 0x34]
push ebx
call fcn.180e6e2a
pop ecx
pop ecx
mov ecx, eax
mov dword [esp + 0x38], eax
mov dword [esp + 0x54], ecx
test ecx, ecx
je case.default.0x180e723c
dec ebx
add ebx, eax
cmp byte [esp + 0x16], 0xf
mov dword [esp + 0x24], ebx
jne 0x180e73e3
push 0
push 0xa
pop eax
push eax
push edi
push esi
call fcn.181b6250
mov ebx, eax
cmp ebx, 4
jge 0x180e73c1
push 0
push 0xa
pop eax
push eax
push edi
push esi
call fcn.18199990
push 0
push 0xa
pop ecx
push ecx
push edx
push eax
call fcn.181b6250
cmp eax, 1
jne 0x180e73c3
test edx, edx
jne 0x180e73c3
xor ebx, ebx
mov ecx, dword [esp + 0x24]
mov al, byte [ebx*2 + 0x181eab51]
mov byte [ecx - 1], al
sub ecx, 2
mov al, byte [ebx*2 + str.thstndrd]
mov ebx, ecx
mov dword [esp + 0x24], ecx
mov byte [ecx], al
mov ecx, dword [esp + 0x40]
movzx eax, byte [ecx + 4]
add eax, 0x181e6ea0
mov dword [esp + 0x58], eax
movzx eax, byte [ecx + 1]
cdq
mov ecx, edx
mov dword [esp + 0x48], eax
mov dword [esp + 0x60], ecx
dec ebx
push ebx
push ecx
push eax
push edi
push esi
mov dword [esp + 0x38], ebx
call fcn.18199b50
mov dword [esp + 0xd0], ebx
pop ebx
mov ebx, dword [esp + 0x24]
mov esi, eax
mov eax, dword [esp + 0x58]
mov edi, edx
mov al, byte [ecx + eax]
mov ecx, dword [esp + 0x60]
mov byte [ebx], al
mov eax, dword [esp + 0x48]
test edi, edi
ja 0x180e7403
jb 0x180e743d
test esi, esi
jne 0x180e7403
mov ebx, dword [esp + 0x3c]
mov edx, dword [esp + 0x38]
mov eax, edx
mov edi, dword [esp + 0x24]
sub eax, edi
mov esi, dword [esp + 0x20]
lea ecx, [ebx - 1]
add ecx, eax
cmp ecx, esi
jge 0x180e746d
mov eax, esi
sub eax, ecx
mov ecx, esi
dec edi
mov byte [edi], 0x30
sub eax, 1
jne 0x180e7460
mov dword [esp + 0x24], edi
cmp byte [esp + 0x17], 0
je 0x180e74b5
lea eax, [ecx - 1]
push 3
pop ecx
cdq
idiv ecx
xor ecx, ecx
mov esi, eax
inc edx
sub edi, esi
mov dword [esp + 0x24], edi
test esi, esi
jle 0x180e74b1
mov bl, byte [esp + 0x17]
lea eax, [esi + ecx]
mov al, byte [eax + edi]
mov byte [ecx + edi], al
sub edx, 1
jne 0x180e74a8
inc ecx
dec esi
push 3
pop eax
mov edx, eax
mov byte [ecx + edi], bl
inc ecx
test esi, esi
jg 0x180e7490
mov ebx, dword [esp + 0x3c]
mov edx, dword [esp + 0x38]
mov al, byte [esp + 0x14]
test al, al
je 0x180e74c4
dec edi
mov dword [esp + 0x24], edi
mov byte [edi], al
cmp byte [esp + 0x13], 0
je 0x180e74f2
mov eax, dword [esp + 0x40]
mov al, byte [eax + 5]
test al, al
je 0x180e74f2
movzx eax, al
add eax, 0x181e5f30
mov cl, byte [eax]
test cl, cl
je 0x180e74f2
dec edi
inc eax
mov byte [edi], cl
mov cl, byte [eax]
test cl, cl
jne 0x180e74e4
mov dword [esp + 0x24], edi
sub edx, edi
dec edx
add ebx, edx
mov edx, dword [esp + 0x28]
mov al, byte [esp + 0x12]
sub edx, ebx
mov dword [esp + 0x28], edx
test edx, edx
jle 0x180e7f65
test al, al
jne 0x180e7520
push 0x20
push edx
push dword [esp + 0x38]
call fcn.180e80fe
add esp, 0xc
push ebx
mov ebx, dword [esp + 0x34]
push edi
push ebx
call fcn.180e8177
add esp, 0xc
cmp byte [esp + 0x12], 0
je 0x180e7f74
push 0x20
push dword [esp + 0x2c]
push ebx
call fcn.180e80fe
jmp 0x180e7f71
cmp byte [esp + 0x15], 0
je 0x180e7576
mov esi, dword [esp + 0x44]
mov edx, dword [esi + 4]
cmp dword [esi], edx
jg 0x180e7563
fld qword [esp + 0x70]
jmp 0x180e7584
mov eax, dword [esi + 8]
mov ecx, dword [eax + edx*4]
lea eax, [edx + 1]
mov dword [esi + 4], eax
call fcn.180fe81b
jmp 0x180e7584
mov eax, dword [esp + 0x18]
add eax, 8
mov dword [esp + 0x18], eax
fld qword [eax - 8]
mov edi, dword [esp + 0x20]
fst qword [esp + 0x58]
fst qword [esp + 0x48]
test edi, edi
jns 0x180e7599
push 6
pop edi
jmp 0x180e75a4
mov eax, 0x5f5e100
cmp edi, eax
jle 0x180e75a8
mov edi, eax
mov dword [esp + 0x20], edi
fld qword [esp + 0x70]
fcomp st(1)
fnstsw ax
test ah, 0x41
jne 0x180e75c7
fchs
mov bh, 0x2d
fst qword [esp + 0x58]
fst qword [esp + 0x48]
mov byte [esp + 0x14], bh
jmp 0x180e75cb
mov bh, byte [esp + 0x14]
cmp bl, 3
jne 0x180e75d9
test edi, edi
je 0x180e75d9
dec edi
mov dword [esp + 0x20], edi
mov ecx, edi
xor edx, edx
and ecx, 0xfff
push 0xa
pop esi
mov eax, ecx
div esi
fld qword [edx*8 + 0x181eb1d0]
fst qword [esp + 0x60]
cmp ecx, esi
jb 0x180e7615
fld qword [esp + 0x88]
mov eax, ecx
xor edx, edx
div esi
fmul st(1), st(0)
sub eax, 1
jne 0x180e7606
fstp st(0)
fstp qword [esp + 0x60]
jmp 0x180e7617
fstp st(0)
cmp bl, 1
jne 0x180e767d
push 8
lea eax, [esp + 0x4c]
push eax
lea eax, [esp + 0x98]
push eax
fstp qword [esp + 0x54]
call fcn.18175220
mov eax, dword [esp + 0xa0]
add esp, 0xc
shr eax, 0x14
and eax, 0x7ff
fld qword [esp + 0x58]
sub eax, 0x3ff
push 3
cdq
pop ecx
idiv ecx
add eax, edi
cmp eax, 0xf
jge 0x180e766f
fld st(0)
fmul qword [esp + 0x98]
fadd qword [esp + 0x60]
fst qword [esp + 0x60]
jmp 0x180e7673
fld qword [esp + 0x60]
faddp st(1)
fst qword [esp + 0x58]
fst qword [esp + 0x48]
push ecx
push ecx
xor esi, esi
fstp qword [esp]
mov dword [esp + 0x44], esi
call fcn.180e8e6d
pop ecx
pop ecx
test eax, eax
je 0x180e76a6
push 3
mov edi, 0x182180b8
pop eax
mov dword [esp + 0x24], edi
mov ebx, eax
jmp 0x180e74f7
fld qword [esp + 0x58]
fld qword [esp + 0x70]
fcomp st(1)
fnstsw ax
test ah, 5
jp 0x180e7837
fld qword [esp + 0x78]
mov ecx, 0x15e
fld st(0)
fld qword [esp + 0xa0]
fcom st(3)
fnstsw ax
test ah, 0x41
jp 0x180e76f6
push 0x64
pop edi
cmp esi, ecx
jg 0x180e76ee
fmul st(1), st(0)
add esi, edi
fld st(1)
fmul st(1)
fcomp st(4)
fnstsw ax
test ah, 0x41
jnp 0x180e76d9
mov edi, dword [esp + 0x20]
mov dword [esp + 0x3c], esi
fstp st(0)
fld st(0)
fld qword [esp + 0xa8]
fmul st(1), st(0)
fxch st(4)
fcom st(1)
fnstsw ax
test ah, 1
jne 0x180e7742
push 0xa
pop edi
jmp 0x180e7717
fxch st(1)
fxch st(2)
cmp esi, ecx
jg 0x180e773c
fstp st(2)
add esi, edi
fld st(0)
fmul st(4)
fcom st(2)
fnstsw ax
test ah, 0x41
jnp 0x180e7713
fstp st(0)
fstp st(3)
fxch st(2)
mov edi, dword [esp + 0x20]
mov dword [esp + 0x3c], esi
jmp 0x180e7746
fstp st(1)
fstp st(3)
jmp 0x180e7732
fstp st(1)
fstp st(3)
fld st(0)
fld qword [esp + 0x80]
fmul st(1), st(0)
fxch st(4)
fcom st(1)
fnstsw ax
test ah, 1
je 0x180e778b
fstp st(1)
fdivrp st(1)
fst qword [esp + 0x48]
fld st(0)
fld qword [esp + 0xb0]
fcom st(2)
fnstsw ax
test ah, 0x41
jne 0x180e7833
fstp st(1)
fstp st(2)
fld qword [esp + 0xb8]
jmp 0x180e77af
fxch st(1)
fxch st(2)
cmp esi, ecx
jg 0x180e77a9
fstp st(2)
inc esi
fld st(0)
fmul st(4)
fcom st(2)
fnstsw ax
test ah, 0x41
jnp 0x180e7787
fstp st(0)
fxch st(1)
mov dword [esp + 0x3c], esi
jmp 0x180e775e
fstp st(1)
jmp 0x180e77a3
fstp st(2)
fmul st(1), st(0)
sub esi, 8
fld st(1)
fxch st(2)
fst qword [esp + 0x48]
fcom st(3)
fnstsw ax
test ah, 5
jnp 0x180e77ad
fstp st(3)
mov dword [esp + 0x3c], esi
fstp st(0)
fld qword [esp + 0x78]
fxch st(2)
fxch st(1)
fcomp st(2)
fnstsw ax
test ah, 5
jp 0x180e77f2
fmul st(2)
dec esi
fst qword [esp + 0x48]
fcom st(1)
fnstsw ax
test ah, 5
jnp 0x180e77de
mov dword [esp + 0x3c], esi
fstp st(1)
cmp esi, ecx
jle 0x180e7840
mov byte [esp + 0xd0], bh
lea edi, [esp + 0xd0]
xor ebx, ebx
mov dword [esp + 0x24], edi
cmp byte [esp + 0x14], bl
mov eax, edi
push 4
setne bl
fstp st(0)
add eax, ebx
fstp st(0)
push 0x18218158
push eax
call fcn.18175220
add esp, 0xc
add ebx, 3
jmp 0x180e74f7
fstp st(0)
jmp 0x180e77d5
fld qword [esp + 0x80]
fxch st(1)
mov cl, byte [esp + 0x16]
lea ebx, [esp + 0xd0]
cmp cl, 1
je 0x180e7875
fadd qword [esp + 0x60]
fst qword [esp + 0x48]
fcom st(1)
fnstsw ax
fstp st(1)
test ah, 1
jne 0x180e7877
fmul qword [esp + 0xc0]
inc esi
mov dword [esp + 0x3c], esi
fstp qword [esp + 0x48]
jmp 0x180e7879
fstp st(0)
fstp st(0)
mov dword [esp + 0x58], esi
cmp cl, 3
jne 0x180e78b1
cmp byte [esp + 0x13], 0
sete byte [esp + 0x17]
cmp esi, 0xfffffffc
jl 0x180e78aa
cmp esi, edi
jg 0x180e78aa
sub edi, esi
mov byte [esp + 0x16], 1
mov dword [esp + 0x20], edi
mov edi, esi
test esi, esi
jle 0x180e78c0
mov eax, esi
jmp 0x180e78c2
mov byte [esp + 0x16], 2
jmp 0x180e78be
mov al, byte [esp + 0x1f]
mov byte [esp + 0x17], al
cmp cl, 2
jne 0x180e78a0
xor edi, edi
xor eax, eax
cdq
mov ecx, eax
mov dword [esp + 0x38], edx
mov eax, dword [esp + 0x20]
cdq
add ecx, eax
mov eax, dword [esp + 0x28]
adc dword [esp + 0x38], edx
cdq
add ecx, eax
mov eax, dword [esp + 0x38]
adc eax, edx
add ecx, 0xf
adc eax, 0
js 0x180e790b
jg 0x180e78f0
cmp ecx, 0x46
jbe 0x180e790b
push eax
push ecx
mov ecx, dword [esp + 0x38]
call fcn.180e6e2a
mov dword [esp + 0x5c], eax
mov ebx, eax
pop ecx
pop ecx
test eax, eax
je case.default.0x180e723c
movzx eax, byte [esp + 0x1f]
mov ecx, dword [esp + 0x20]
mov dl, byte [esp + 0x14]
imul eax, eax, 0xa
mov dword [esp + 0x24], ebx
add eax, 0x10
test ecx, ecx
mov dword [esp + 0x60], eax
setg al
or al, byte [esp + 0x1f]
or al, byte [esp + 0x13]
mov byte [esp + 0x13], al
test dl, dl
je 0x180e793e
mov byte [ebx], dl
inc ebx
test edi, edi
jns 0x180e7948
mov byte [ebx], 0x30
inc ebx
jmp 0x180e7965
lea edx, [esp + 0x60]
lea ecx, [esp + 0x48]
call fcn.180e6d79
mov byte [ebx], al
inc ebx
sub edi, 1
jns 0x180e7948
mov al, byte [esp + 0x13]
mov ecx, dword [esp + 0x20]
test al, al
je 0x180e796d
mov byte [ebx], 0x2e
inc ebx
add edi, 1
jns 0x180e798c
neg edi
push edi
push 0x30
push ebx
call fcn.181757a0
mov ecx, dword [esp + 0x2c]
add esp, 0xc
add ebx, edi
sub ecx, edi
mov dword [esp + 0x20], ecx
test ecx, ecx
jle 0x180e79ad
mov esi, dword [esp + 0x20]
lea edx, [esp + 0x60]
dec esi
lea ecx, [esp + 0x48]
call fcn.180e6d79
mov byte [ebx], al
inc ebx
test esi, esi
jg 0x180e7994
mov esi, dword [esp + 0x3c]
cmp byte [esp + 0x17], 0
je 0x180e79e1
cmp byte [esp + 0x13], 0
je 0x180e79e1
jmp 0x180e79c2
mov ebx, eax
mov byte [ebx], 0
lea eax, [ebx - 1]
cmp byte [eax], 0x30
je 0x180e79bd
cmp byte [ebx - 1], 0x2e
jne 0x180e79e1
cmp byte [esp + 0x1f], 0
je 0x180e79dd
mov byte [ebx], 0x30
inc ebx
jmp 0x180e79e1
dec ebx
mov byte [ebx], 0
cmp byte [esp + 0x16], 2
jne 0x180e7a3d
mov eax, dword [esp + 0x40]
movzx eax, byte [eax + 4]
mov al, byte [eax + 0x181e6ea0]
mov byte [ebx], al
lea eax, [ebx + 1]
add ebx, 2
test esi, esi
jns 0x180e7a04
neg esi
cmp dword [esp + 0x58], 0
push 0x64
setl cl
lea ecx, [ecx*2 + 0x2b]
mov byte [eax], cl
pop ecx
cmp esi, ecx
jl 0x180e7a28
mov eax, esi
cdq
idiv ecx
add al, 0x30
mov esi, edx
mov byte [ebx], al
inc ebx
mov eax, esi
push 0xa
cdq
pop ecx
idiv ecx
add al, 0x30
add dl, 0x30
mov byte [ebx], al
mov byte [ebx + 1], dl
add ebx, 2
mov edi, dword [esp + 0x24]
mov al, byte [esp + 0x12]
mov edx, dword [esp + 0x28]
mov byte [ebx], 0
sub ebx, edi
cmp byte [esp + 0x2f], 0
je 0x180e74ff
test al, al
jne 0x180e74ff
cmp ebx, edx
jge 0x180e74ff
mov ecx, edx
sub ecx, ebx
mov ebx, edx
cmp ebx, ecx
jl 0x180e7a82
mov esi, edi
sub esi, ecx
mov al, byte [esi + edx]
mov byte [edx + edi], al
dec edx
cmp edx, ecx
jge 0x180e7a77
xor eax, eax
cmp byte [esp + 0x14], al
setne al
test ecx, ecx
je 0x180e74f7
push ecx
add eax, edi
push 0x30
push eax
call fcn.181757a0
add esp, 0xc
jmp 0x180e74f7
cmp byte [esp + 0x15], 0
jne 0x180e7f63
mov eax, dword [esp + 0x18]
add eax, 4
mov dword [esp + 0x18], eax
mov ecx, dword [eax - 4]
mov eax, dword [esp + 0x30]
mov eax, dword [eax + 0x10]
mov dword [ecx], eax
jmp 0x180e7f63
lea edi, [esp + 0xd0]
mov byte [esp + 0xd0], 0x25
xor ebx, ebx
mov dword [esp + 0x24], edi
inc ebx
jmp 0x180e74f7
cmp byte [esp + 0x15], 0
je 0x180e7b4b
mov ecx, dword [esp + 0x44]
call fcn.180e6dfd
xor ebx, ebx
mov edx, eax
inc ebx
test edx, edx
je 0x180e7b3e
mov cl, byte [edx]
inc edx
mov byte [esp + 0xd0], cl
movsx ecx, cl
and ecx, 0xc0
cmp cl, 0xc0
jne 0x180e7c0d
mov cl, byte [edx]
mov al, cl
and al, 0xc0
cmp al, 0x80
jne 0x180e7c0d
mov byte [esp + ebx + 0xd0], cl
inc ebx
inc edx
cmp ebx, 4
jl 0x180e7b1d
jmp 0x180e7c0d
mov byte [esp + 0xd0], 0
jmp 0x180e7c0d
mov eax, dword [esp + 0x18]
add eax, 4
mov dword [esp + 0x18], eax
mov ecx, dword [eax - 4]
cmp ecx, 0x80
jae 0x180e7b70
xor ebx, ebx
mov byte [esp + 0xd0], cl
inc ebx
jmp 0x180e7c0d
mov eax, ecx
cmp ecx, 0x800
jae 0x180e7b99
shr eax, 6
and cl, 0x3f
and al, 0x1f
sub al, 0x40
add cl, 0x80
mov byte [esp + 0xd0], al
mov byte [esp + 0xd1], cl
push 2
jmp 0x180e7c0c
push 0x3f
mov dl, cl
pop ebx
and dl, bl
add dl, 0x80
cmp ecx, 0x10000
jae 0x180e7bd6
shr eax, 0xc
and al, 0xf
shr ecx, 6
sub al, 0x20
mov byte [esp + 0xd2], dl
and cl, bl
mov byte [esp + 0xd0], al
push 3
add cl, 0x80
pop eax
mov byte [esp + 0xd1], cl
mov ebx, eax
jmp 0x180e7c0d
shr eax, 0x12
and al, 7
mov byte [esp + 0xd3], dl
sub al, 0x10
mov byte [esp + 0xd0], al
mov eax, ecx
shr eax, 0xc
shr ecx, 6
and al, bl
add al, 0x80
and cl, bl
add cl, 0x80
mov byte [esp + 0xd1], al
mov byte [esp + 0xd2], cl
push 4
pop ebx
mov esi, dword [esp + 0x20]
cmp esi, 1
jle 0x180e7c5c
mov ecx, dword [esp + 0x28]
mov edi, dword [esp + 0x30]
sub ecx, esi
mov eax, ecx
inc ecx
mov dword [esp + 0x28], ecx
cmp ecx, 1
jle 0x180e7c44
cmp byte [esp + 0x12], 0
jne 0x180e7c44
push 0x20
push eax
push edi
call fcn.180e80fe
add esp, 0xc
and dword [esp + 0x28], 0
dec esi
push ebx
lea eax, [esp + 0xd4]
push eax
push edi
call fcn.180e8177
add esp, 0xc
sub esi, 1
jne 0x180e7c45
lea edi, [esp + 0xd0]
mov dword [esp + 0x24], edi
jmp 0x180e7eb3
cmp byte [esp + 0x15], 0
je 0x180e7c86
mov ecx, dword [esp + 0x44]
call fcn.180e6dfd
mov edi, eax
mov dword [esp + 0x24], eax
mov bl, 5
jmp 0x180e7c98
mov eax, dword [esp + 0x18]
add eax, 4
mov dword [esp + 0x18], eax
mov edi, dword [eax - 4]
mov dword [esp + 0x24], edi
test edi, edi
jne 0x180e7ca7
mov edi, 0x181f4ba4
mov dword [esp + 0x24], edi
jmp 0x180e7cfe
cmp bl, 6
jne 0x180e7cfe
mov ebx, dword [esp + 0x30]
cmp dword [ebx + 0x10], 0
jne 0x180e7cfa
cmp dword [ebx + 0xc], 0
je 0x180e7cfa
cmp dword [esp + 0x28], 0
jne 0x180e7cfa
mov eax, dword [esp + 0x20]
test eax, eax
jns 0x180e7cfa
cmp byte [ebx + 0x14], 0
jne 0x180e7cfa
mov ecx, dword [ebx]
mov edx, edi
mov dword [ebx + 4], edi
call fcn.180e66af
push edi
mov dword [ebx + 8], eax
call fcn.1817e400
or byte [ebx + 0x15], 4
and eax, 0x7fffffff
mov dword [ebx + 0x10], eax
xor ebx, ebx
pop ecx
jmp 0x180e74f7
mov dword [esp + 0x54], edi
mov ecx, dword [esp + 0x20]
test ecx, ecx
js 0x180e7d51
cmp byte [esp + 0x1f], 0
je 0x180e7d33
mov ebx, edi
jmp 0x180e7d28
mov al, byte [ebx]
dec ecx
test al, al
je 0x180e7d2c
inc ebx
cmp al, 0xc0
jb 0x180e7d28
jmp 0x180e7d20
inc ebx
mov al, byte [ebx]
and al, 0xc0
cmp al, 0x80
je 0x180e7d1f
test ecx, ecx
jg 0x180e7d11
sub ebx, edi
jmp 0x180e7eb3
xor ebx, ebx
test ecx, ecx
jle 0x180e74f7
cmp byte [ebx + edi], 0
je 0x180e74f7
inc ebx
cmp ebx, ecx
jl 0x180e7d3d
jmp 0x180e7ea8
push edi
call fcn.1817e400
mov ebx, eax
pop ecx
and ebx, 0x7fffffff
jmp 0x180e7ea8
cmp bl, 0xe
setne cl
dec cl
and cl, 0xfb
add cl, 0x27
cmp byte [esp + 0x15], 0
mov byte [esp + 0x13], cl
je 0x180e7d93
mov ecx, dword [esp + 0x44]
call fcn.180e6dfd
mov cl, byte [esp + 0x13]
mov edi, eax
mov dword [esp + 0x40], eax
jmp 0x180e7da5
mov eax, dword [esp + 0x18]
add eax, 4
mov dword [esp + 0x18], eax
mov edi, dword [eax - 4]
mov dword [esp + 0x40], edi
mov ebx, edi
mov dword [esp + 0x58], ebx
test edi, edi
jne 0x180e7dc4
cmp byte [esp + 0x16], 0xa
mov edi, str.NULL
je 0x180e7dc0
mov edi, str._NULL_
mov dword [esp + 0x40], edi
mov eax, dword [esp + 0x20]
xor edx, edx
xor esi, esi
test eax, eax
je 0x180e7e0b
mov ebx, eax
mov ah, byte [esp + 0x1f]
mov al, byte [esi + edi]
test al, al
je 0x180e7e07
cmp al, cl
jne 0x180e7de2
inc edx
test ah, ah
je 0x180e7e01
and al, 0xc0
cmp al, 0xc0
jne 0x180e7e01
lea ecx, [edi + 1]
add ecx, esi
mov al, byte [ecx]
and al, 0xc0
cmp al, 0x80
jne 0x180e7dfd
inc esi
inc ecx
jmp 0x180e7df1
mov cl, byte [esp + 0x13]
inc esi
sub ebx, 1
jne 0x180e7dd6
mov ebx, dword [esp + 0x58]
test ebx, ebx
je 0x180e7e20
cmp byte [esp + 0x16], 0xa
jne 0x180e7e20
mov dword [esp + 0x38], 1
jmp 0x180e7e25
and dword [esp + 0x38], 0
lea eax, [esi + 3]
add eax, edx
cmp eax, 0x46
jle 0x180e7e51
mov ecx, dword [esp + 0x30]
cdq
push edx
push eax
call fcn.180e6e2a
pop ecx
pop ecx
mov ecx, eax
mov dword [esp + 0x54], ecx
mov dword [esp + 0x24], ecx
test ecx, ecx
je case.default.0x180e723c
jmp 0x180e7e5c
lea eax, [esp + 0xd0]
mov dword [esp + 0x24], eax
mov dl, byte [esp + 0x13]
xor ebx, ebx
cmp dword [esp + 0x38], ebx
je 0x180e7e6b
mov byte [eax], dl
inc ebx
xor eax, eax
test esi, esi
jle 0x180e7e95
mov cl, byte [eax + edi]
mov edi, dword [esp + 0x24]
mov byte [ebx + edi], cl
inc ebx
mov edi, dword [esp + 0x40]
cmp cl, dl
jne 0x180e7e90
mov edi, dword [esp + 0x24]
mov byte [ebx + edi], cl
inc ebx
mov edi, dword [esp + 0x40]
inc eax
cmp eax, esi
jl 0x180e7e71
cmp dword [esp + 0x38], 0
mov edi, dword [esp + 0x24]
je 0x180e7ea4
mov byte [ebx + edi], dl
inc ebx
mov byte [ebx + edi], 0
cmp byte [esp + 0x1f], 0
je 0x180e74f7
mov edx, dword [esp + 0x28]
test edx, edx
jle 0x180e74fb
lea ecx, [ebx - 1]
jmp 0x180e7ecf
mov al, byte [ecx + edi]
and al, 0xc0
dec ecx
cmp al, 0x80
jne 0x180e7ecf
inc edx
test ecx, ecx
jns 0x180e7ec4
jmp 0x180e74fb
mov ecx, dword [esp + 0x30]
test byte [ecx + 0x15], 1
je case.default.0x180e723c
mov eax, dword [esp + 0x18]
add eax, 4
mov dword [esp + 0x18], eax
mov eax, dword [eax - 4]
test eax, eax
je 0x180e7f63
cmp dword [eax + 4], 0
je 0x180e7f63
push dword [eax + 4]
push dword [eax]
push ecx
call fcn.180e8177
add esp, 0xc
jmp 0x180e7f63
mov ecx, dword [esp + 0x30]
test byte [ecx + 0x15], 1
je case.default.0x180e723c
mov eax, dword [esp + 0x18]
mov ebx, dword [eax]
lea esi, [eax + 8]
imul edi, dword [esi - 4], 0x48
mov eax, dword [edi + ebx + 0xc]
test eax, eax
je 0x180e7f4f
push eax
push ecx
call fcn.180e81b5
push 1
push 0x181f9970
push dword [esp + 0x40]
call fcn.180e8177
mov ecx, dword [esp + 0x44]
add esp, 0x14
push dword [edi + ebx + 0x10]
push ecx
call fcn.180e81b5
mov edi, dword [esp + 0x2c]
pop ecx
pop ecx
mov dword [esp + 0x18], esi
xor ebx, ebx
push ebx
mov ebx, dword [esp + 0x34]
push edi
push ebx
call fcn.180e8177
add esp, 0xc
mov ecx, dword [esp + 0x54]
test ecx, ecx
je 0x180e7f8b
mov edx, ecx
mov ecx, dword [ebx]
call fcn.180e676a
xor ecx, ecx
mov dword [esp + 0x54], ecx
mov esi, dword [esp + 0x34]
mov edx, dword [esp + 0x18]
inc esi
movsx eax, byte [esi]
test eax, eax
jne 0x180e6f73
jmp case.default.0x180e723c
push 1
push 0x182180b4
push ebx
call fcn.180e8177
add esp, 0xc
mov ecx, dword [esp + 0x11c]
pop edi
pop esi
pop ebx
xor ecx, esp
call fcn.181605f4
mov esp, ebp
pop ebp
ret