Function at 0x10d1000
Capabilities:
Authenticate hmac
Encode data using xor
Parse credit card information

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
and esp, 0xfffffff8
sub esp, 0x260
mov eax, dword [ebp + 0x18]
mov dword [esp + 0x20], eax
mov eax, dword [ebp + 0x14]
mov ebx, dword [ebp + 0x10]
mov dword [esp + 0x44], 0
mov esi, ebx
jmp 0x10d103f
mov ebx, eax
mov eax, edi
movzx eax, byte [edi]
mov esi, ebx
mov byte [ebx], al
inc ebx
mov eax, edi
inc eax
mov dword [esp + 0x14], esi
mov edi, eax
test al, 3
je 0x10d1050
movzx eax, byte [eax]
jmp 0x10d107b
mov eax, dword [eax]
lea ecx, [eax + eax]
not ecx
add ecx, eax
mov edx, ecx
xor edx, 0x7f7f7f7f
or ecx, 0x80808080
and ecx, edx
mov edx, eax
xor edx, 0x25252525
add edx, 0xfefefeff
test ecx, edx
je 0x10d10bd
cmp al, 0x25
je 0x10d1129
test al, al
mov esi, dword [esp + 0x14]
je 0x10d3529
cmp dword [ebp + 8], 0
je 0x10d1039
mov ecx, ebx
sub ecx, esi
cmp ecx, 0x1ff
jl 0x10d1039
add dword [esp + 0x44], ecx
push ecx
push dword [ebp + 0xc]
push esi
call dword [ebp + 8]
add esp, 0xc
test eax, eax
jne 0x10d1030
jmp 0x10d354c
mov edx, dword [esp + 0x14]
sub edx, ebx
add edx, 0x200
jmp 0x10d110b
mov dword [ebx], eax
add ebx, 4
mov eax, dword [edi + 4]
add edi, 4
lea ecx, [eax + eax]
not ecx
add ecx, eax
mov esi, ecx
xor esi, 0x7f7f7f7f
or ecx, 0x80808080
and ecx, esi
mov esi, eax
xor esi, 0x25252525
add esi, 0xfefefeff
add edx, 0xfffffffc
test ecx, esi
jne 0x10d107b
lea esi, [eax - 0x1010101]
test ecx, esi
jne 0x10d1083
cmp dword [ebp + 8], 0
je 0x10d10d0
cmp edx, 4
jge 0x10d10d0
jmp 0x10d107b
add edi, 2
mov dword [esp + 4], 0
mov ecx, edi
jmp 0x10d1145
mov edx, 1
nop
nop
nop
or dword [esp + 4], edx
inc ecx
movzx eax, byte [ecx - 1]
lea esi, [eax - 0x20]
cmp esi, 0x3f
ja case.0x10d1156.33
mov edx, 2
jmp dword [esi*4 + 0x111b564]
mov edx, 4
jmp case.0x10d1156.43
mov edx, 0x400
jmp case.0x10d1156.43
mov edx, 0x100
test dword [esp + 4], 0x100
je case.0x10d1156.43
mov edx, dword [esp + 4]
and edx, 0x800
add edx, 0x800
jmp case.0x10d1156.43
mov edx, 8
jmp case.0x10d1156.43
mov edx, 0x40
jmp case.0x10d1156.43
or dword [esp + 4], 0x10
movzx eax, byte [ecx]
jmp 0x10d11a5
dec ecx
cmp al, 0x2a
mov edi, dword [esp + 0x14]
jne 0x10d11c5
mov eax, dword [esp + 0x20]
mov edx, dword [eax]
mov dword [esp + 0x40], edx
add eax, 4
mov dword [esp + 0x20], eax
movzx eax, byte [ecx + 1]
inc ecx
jmp 0x10d1203
mov edx, eax
add dl, 0xd0
mov dword [esp + 0x40], 0
cmp dl, 9
ja 0x10d1203
xor esi, esi
nop
nop
nop
nop
nop
nop
nop
movzx eax, al
lea edx, [esi + esi*4]
lea esi, [eax + edx*2]
add esi, 0xffffffd0
movzx eax, byte [ecx + 1]
inc ecx
mov edx, eax
add dl, 0xd0
cmp dl, 0xa
jb 0x10d11e0
mov dword [esp + 0x40], esi
mov edi, dword [esp + 0x14]
mov esi, 0xffffffff
cmp al, 0x2e
jne 0x10d125b
movzx eax, byte [ecx + 1]
cmp al, 0x2a
jne 0x10d122a
mov eax, dword [esp + 0x20]
mov esi, dword [eax]
add eax, 4
mov dword [esp + 0x20], eax
movzx eax, byte [ecx + 2]
add ecx, 2
jmp 0x10d125b
inc ecx
mov edx, eax
add dl, 0xd0
xor esi, esi
cmp dl, 9
ja 0x10d125b
xor esi, esi
nop
nop
nop
nop
nop
nop
nop
movzx eax, al
lea edx, [esi + esi*4]
lea esi, [eax + edx*2]
add esi, 0xffffffd0
movzx eax, byte [ecx + 1]
inc ecx
mov edx, eax
add dl, 0xd0
cmp dl, 0xa
jb 0x10d1240
movzx eax, al
add eax, 0xffffffb7
cmp eax, 0x31
ja case.0x10d1266.74
jmp dword [eax*4 + 0x111b664]
inc ecx
movzx edx, byte [ecx]
mov dword [esp + 0x48], ecx
movzx eax, dl
add eax, 0xffffffbf
cmp eax, 0x37
mov ecx, dword [esp + 4]
ja case.0x10d128c.67
mov dword [esp + 0x28], ebx
jmp dword [eax*4 + 0x111b72c]
test cl, 0x20
jne 0x10d14fd
mov eax, dword [esp + 0x20]
mov edi, dword [eax]
add eax, 4
mov dword [esp + 0x20], eax
mov dword [esp + 0x18], 0
cmp dl, 0x75
je 0x10d1c3e
test edi, edi
jns 0x10d1c3e
neg edi
or ecx, 0x80
jmp 0x10d1c3e
movzx edx, byte [ecx + 1]
cmp dl, 0x6c
jne 0x10d155a
or dword [esp + 4], 0x20
add ecx, 2
jmp case.0x10d1266.74
lea eax, [ecx + 1]
movzx edx, byte [ecx + 1]
cmp edx, 0x33
je 0x10d1aab
cmp edx, 0x36
jne 0x10d1abc
cmp byte [ecx + 2], 0x34
jne 0x10d1ab5
or dword [esp + 4], 0x20
add ecx, 3
jmp case.0x10d1266.74
cmp byte [ecx + 1], 0x68
je 0x10d1560
inc ecx
or dword [esp + 4], 0x200
jmp case.0x10d1266.74
mov eax, str.0123456789ABCDEFXP
cmp dl, 0x45
je 0x10d133d
mov eax, str.0123456789abcdefxp
mov dword [esp + 8], eax
mov eax, dword [esp + 0x20]
fld qword [eax]
mov eax, 6
cmp esi, 0xffffffff
je 0x10d1353
mov eax, esi
mov dword [esp + 0xc], eax
or eax, 0x80000000
sub esp, 0x18
mov dword [esp + 0x10], eax
fstp qword [esp + 8]
lea eax, [esp + 0x54]
mov dword [esp + 4], eax
lea eax, [esp + 0x74]
mov dword [esp], eax
lea ecx, [esp + 0x28]
lea edx, [esp + 0x34]
call fcn.010d3570
add esp, 0x18
test eax, eax
je 0x10d1570
mov ecx, dword [esp + 4]
or ecx, 0x80
jmp 0x10d1574
mov edi, str.0123456789ABCDEFXP
cmp dl, 0x41
je 0x10d13ac
mov edi, str.0123456789abcdefxp
mov dword [esp + 0x4c], edx
mov eax, 6
cmp esi, 0xffffffff
je 0x10d13bc
mov eax, esi
mov dword [esp + 0x24], eax
mov eax, dword [esp + 0x20]
mov edx, dword [eax + 4]
test edx, edx
jns 0x10d13d1
or ecx, 0x80
mov eax, dword [esp + 0x20]
mov esi, dword [eax]
mov byte [esp + 0x2c], 0
mov al, 0x2d
test cl, cl
js 0x10d13f2
mov al, 0x20
test cl, 4
jne 0x10d13f2
mov al, 0x2b
xor ebx, ebx
test cl, 2
je 0x10d1400
mov byte [esp + 0x2c], 1
mov byte [esp + 0x2d], al
mov ebx, 1
mov dword [esp + 4], ecx
mov eax, edx
and eax, 0xfffff
shr edx, 0x14
and edx, 0x7ff
mov dword [esp], ebx
je 0x10d1ade
mov ebx, edi
add edx, 0xfffffc01
mov ecx, 0xffffffff
add esi, ecx
mov ecx, 0xfffff
adc eax, ecx
add esi, 1
adc eax, 0
jmp 0x10d1af1
mov dword [esp + 8], str.0123456789ABCDEFXP
cmp dl, 0x42
je 0x10d1453
mov dword [esp + 8], str.0123456789abcdefxp
mov byte [esp + 0x2c], 0
test cl, 8
je 0x10d1473
cmp dl, 0x42
setne al
mov word [esp + 0x2c], 0x3002
shl al, 5
or al, 0x42
mov byte [esp + 0x2e], al
mov dword [esp + 0x1c], 0x180
mov ecx, 1
jmp 0x10d17a2
mov eax, str.0123456789ABCDEFXP
cmp dl, 0x47
je 0x10d1494
mov eax, str.0123456789abcdefxp
mov dword [esp + 8], eax
mov eax, dword [esp + 0x20]
fld qword [eax]
cmp esi, 1
mov eax, esi
adc eax, 0
mov ecx, 6
cmp esi, 0xffffffff
je 0x10d14b2
mov ecx, eax
mov dword [esp], ecx
lea eax, [ecx - 1]
or eax, 0x80000000
sub esp, 0x18
fstp qword [esp + 8]
lea ecx, [esp + 0x54]
mov dword [esp + 4], ecx
lea ecx, [esp + 0x74]
mov dword [esp], ecx
mov dword [esp + 0x10], eax
lea ecx, [esp + 0x28]
lea edx, [esp + 0x34]
call fcn.010d3570
add esp, 0x18
test eax, eax
je 0x10d16d3
mov eax, dword [esp + 4]
or eax, 0x80
jmp 0x10d16d7
mov ecx, dword [esp + 0x20]
lea eax, [ecx + 8]
mov dword [esp], eax
mov edi, dword [ecx]
mov eax, dword [ecx + 4]
cmp dl, 0x75
je 0x10d1c2f
test eax, eax
jns 0x10d1c2f
neg edi
mov dword [esp + 0x4c], edi
mov ecx, 0
sbb ecx, eax
mov edi, esi
mov esi, dword [esp + 4]
mov edx, esi
not edx
or edx, 0xffffff7f
add esi, edx
add esi, 0x81
mov dword [esp + 0x18], ecx
mov ecx, esi
mov esi, edi
mov edi, dword [esp + 0x4c]
mov eax, dword [esp]
mov dword [esp + 0x20], eax
jmp 0x10d1c3e
inc ecx
jmp 0x10d1271
add ecx, 2
or dword [esp + 4], 0x200
jmp case.0x10d1266.74
mov ecx, dword [esp + 4]
add dword [esp + 0x20], 8
mov byte [esp + 0x34], 0
mov byte [esp + 0x2c], 0
mov al, 0x2d
test cl, cl
js 0x10d1597
mov al, 0x20
test cl, 4
jne 0x10d1597
mov al, 0x2b
test cl, 2
je 0x10d15a0
mov byte [esp + 0x2c], 1
mov byte [esp + 0x2d], al
mov dword [esp + 4], ecx
mov eax, dword [esp + 0x3c]
xor edi, edi
mov ecx, dword [esp + 0x10]
cmp eax, 0x7000
mov dword [esp], ecx
je 0x10d28d0
mov dword [esp + 0x18], eax
movzx ecx, byte [ecx]
mov byte [esp + 0x9c], cl
lea edi, [esp + 0x9d]
mov ecx, dword [esp + 0xc]
test ecx, ecx
je 0x10d15f5
movzx ecx, byte [section..data]
xor cl, 0x37
mov byte [esp + 0x9d], cl
lea edi, [esp + 0x9e]
mov ecx, dword [esp + 0xc]
mov eax, dword [esp + 0x1c]
lea edx, [eax - 1]
cmp edx, ecx
jbe 0x10d1607
lea eax, [ecx + 1]
mov dword [esp + 0x1c], eax
cmp eax, 2
mov dword [esp + 0x24], eax
jb 0x10d16ae
mov esi, ecx
cmp ecx, edx
jb 0x10d161c
mov ecx, edx
lea esi, [ecx - 1]
mov edx, 1
cmp esi, 7
jb 0x10d1693
mov esi, ecx
and esi, 0xfffffff8
xor edx, edx
mov eax, edi
mov edi, dword [esp]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
movzx ebx, byte [edi + edx + 1]
mov byte [eax + edx], bl
movzx ebx, byte [edi + edx + 2]
mov byte [eax + edx + 1], bl
movzx ebx, byte [edi + edx + 3]
mov byte [eax + edx + 2], bl
movzx ebx, byte [edi + edx + 4]
mov byte [eax + edx + 3], bl
movzx ebx, byte [edi + edx + 5]
mov byte [eax + edx + 4], bl
movzx ebx, byte [edi + edx + 6]
mov byte [eax + edx + 5], bl
movzx ebx, byte [edi + edx + 7]
mov byte [eax + edx + 6], bl
movzx ebx, byte [edi + edx + 8]
mov byte [eax + edx + 7], bl
add edx, 8
cmp esi, edx
jne 0x10d1640
add eax, edx
inc edx
mov edi, eax
and ecx, 7
je 0x10d16ae
mov esi, dword [esp]
add esi, edx
xor edx, edx
nop
movzx ebx, byte [esi + edx]
mov byte [edi + edx], bl
inc edx
cmp ecx, edx
jne 0x10d16a0
add edi, edx
mov eax, dword [esp + 8]
movzx ecx, byte [eax + 0xe]
mov byte [esp + 0x35], cl
mov eax, dword [esp + 0x18]
test eax, eax
jle 0x10d1f9c
dec eax
mov byte [esp + 0x36], 0x2b
mov ebx, eax
jmp 0x10d1fa8
mov eax, dword [esp + 4]
mov dword [esp + 4], eax
mov edi, dword [esp + 0x1c]
mov eax, dword [esp]
cmp edi, eax
jb 0x10d16e8
mov edi, eax
mov cl, 1
cmp edi, 2
jb 0x10d2073
mov dword [esp + 0xc], edi
dec edi
mov ebx, dword [esp + 0x10]
add ebx, edi
xor edx, edx
cmp byte [ebx + edx], 0x30
jne 0x10d2062
lea esi, [edi + edx]
dec edx
mov eax, edx
add eax, dword [esp]
setne cl
cmp esi, 2
jb 0x10d171f
test eax, eax
jne 0x10d1700
mov edi, dword [esp + 0xc]
add edi, edx
jmp 0x10d206f
and ecx, 0xffffffef
mov esi, 8
mov dword [esp + 4], ecx
mov dword [esp + 8], str.0123456789ABCDEFXP
cmp dl, 0x58
je 0x10d174b
mov dword [esp + 8], str.0123456789abcdefxp
mov dword [esp + 0x1c], 0x440
mov byte [esp + 0x2c], 0
mov ecx, 4
test byte [esp + 4], 8
je 0x10d17a2
cmp dl, 0x58
setne al
mov word [esp + 0x2c], 0x3002
shl al, 5
or al, 0x58
mov byte [esp + 0x2e], al
jmp 0x10d17a2
mov byte [esp + 0x2c], 0
test cl, 8
je 0x10d178d
mov word [esp + 0x2c], 0x3001
mov dword [esp + 0x1c], 0x330
mov dword [esp + 8], str.0123456789ABCDEFXP
mov ecx, 3
mov dword [esp + 0x24], esi
test byte [esp + 4], 0x20
jne 0x10d17be
mov edx, dword [esp + 0x20]
mov eax, dword [edx]
add edx, 4
mov dword [esp + 0x20], edx
xor esi, esi
jmp 0x10d17ce
mov edx, dword [esp + 0x20]
mov eax, dword [edx]
mov esi, dword [edx + 4]
add edx, 8
mov dword [esp + 0x20], edx
mov dword [esp + 0x3c], 0
mov byte [esp + 0x34], 0
mov edx, eax
or edx, esi
jne 0x10d17f1
mov byte [esp + 0x2c], 0
cmp dword [esp + 0x24], 0
je 0x10d1ac5
mov edi, 0xffffffff
shl edi, cl
not edi
and edi, eax
mov edx, dword [esp + 0x1c]
mov cl, dh
shrd eax, esi, cl
mov ecx, dword [esp + 8]
movzx ecx, byte [ecx + edi]
mov byte [esp + 0x25b], cl
mov cl, dh
shr esi, cl
test dh, 0x20
je 0x10d1821
mov eax, esi
xor esi, esi
mov ecx, eax
or ecx, esi
jne 0x10d1868
mov ecx, 1
cmp dword [esp + 0x24], 2
jge 0x10d1868
lea eax, [esp + 0x25b]
mov dword [esp], eax
mov dword [esp + 0x1c], ecx
shl edx, 0x14
and edx, 0xf000000
mov eax, edx
xor eax, ecx
and edx, ecx
lea edi, [eax + edx*2]
mov dword [esp + 0xc], 0
mov ebx, dword [esp + 0x28]
mov edx, dword [esp + 0x24]
jmp 0x10d28da
lea ecx, [esp + 0x25b]
mov dword [esp], ecx
lea ebx, [esp + 0x25c]
nop
nop
nop
nop
nop
nop
nop
test byte [esp + 4], 0x40
je 0x10d1898
inc edx
mov dword [esp + 0x1c], edx
mov ecx, edx
shr ecx, 4
xor ecx, edx
test cl, 0xf
je 0x10d18ea
mov ebx, dword [esp]
mov edi, 0xffffffff
mov cl, dh
shl edi, cl
not edi
and edi, eax
mov edx, dword [esp + 0x1c]
mov cl, dh
shrd eax, esi, cl
mov ecx, dword [esp + 8]
movzx ecx, byte [ecx + edi]
mov byte [ebx - 1], cl
mov cl, dh
shr esi, cl
test dh, 0x20
je 0x10d18c9
mov eax, esi
xor esi, esi
lea ecx, [ebx - 1]
mov dword [esp], ecx
mov ecx, eax
or ecx, esi
jne 0x10d1880
lea ecx, [esp + 0x25c]
sub ecx, dword [esp]
cmp ecx, dword [esp + 0x24]
jl 0x10d1880
jmp 0x10d183d
and edx, 0xfffffff0
mov dword [esp + 0x1c], edx
movzx ecx, byte [0x111e001]
mov byte [ebx - 2], cl
add ebx, 0xfffffffe
mov edx, dword [esp + 0x1c]
jmp 0x10d189b
mov eax, dword [esp + 0x20]
mov eax, dword [eax]
mov ecx, str.null
test eax, eax
je 0x10d1915
mov ecx, eax
mov dword [esp], ecx
mov edx, esi
test esi, esi
jns 0x10d1923
mov edx, 0xffffffff
mov ecx, dword [esp]
test cl, 3
je 0x10d258f
lea eax, [edx + ecx]
test esi, esi
je 0x10d28b1
cmp byte [ecx], 0
je 0x10d2737
inc ecx
lea esi, [edx - 1]
mov edi, ecx
test cl, 3
je 0x10d284b
test esi, esi
je 0x10d28ae
cmp byte [edi], 0
je 0x10d3511
mov ecx, dword [esp]
add ecx, 2
lea esi, [edx - 2]
mov edi, ecx
test cl, 3
je 0x10d284b
test esi, esi
je 0x10d28ae
cmp byte [edi], 0
je 0x10d3511
mov ecx, dword [esp]
add ecx, 3
lea esi, [edx - 3]
mov edi, ecx
test cl, 3
je 0x10d284b
test esi, esi
je 0x10d28ae
cmp byte [edi], 0
je 0x10d3511
mov ecx, dword [esp]
lea ebx, [ecx + 4]
add edx, 0xfffffffc
test bl, 3
je 0x10d284f
test edx, edx
je 0x10d28aa
mov eax, ebx
jmp 0x10d28aa
mov byte [esp + 0x25b], dl
mov dword [esp + 0x1c], 1
mov byte [esp + 0x2c], 0
mov byte [esp + 0x34], 0
mov dword [esp + 0x3c], 0
lea eax, [esp + 0x25b]
mov dword [esp], eax
mov dword [esp + 4], 0
mov dword [esp + 0xc], 0
xor edx, edx
mov dword [esp + 0x40], 0
xor edi, edi
jmp 0x10d28da
mov ecx, dword [esp + 0x20]
movzx eax, byte [ecx]
add ecx, 4
mov dword [esp + 0x20], ecx
mov byte [esp + 0x25b], al
mov dword [esp + 0x1c], 1
mov byte [esp + 0x2c], 0
mov byte [esp + 0x34], 0
mov dword [esp + 0x3c], 0
lea eax, [esp + 0x25b]
mov dword [esp], eax
mov dword [esp + 0xc], 0
xor edx, edx
xor edi, edi
jmp 0x10d28da
mov edi, esi
mov eax, dword [esp + 0x20]
fld qword [eax]
add eax, 8
mov dword [esp + 0x20], eax
test ecx, 0x100
jne 0x10d1dfc
jmp 0x10d1eb1
mov eax, ebx
mov esi, edi
sub eax, edi
mov ecx, eax
mov edx, dword [esp + 0x44]
and ecx, edx
xor eax, edx
lea eax, [eax + ecx*2]
mov edx, dword [esp + 0x20]
mov ecx, dword [edx]
mov dword [ecx], eax
add edx, 4
mov dword [esp + 0x20], edx
jmp 0x10d3507
cmp byte [ecx + 2], 0x32
je 0x10d20ed
mov ecx, eax
jmp case.0x10d1266.74
mov dword [esp + 0x48], eax
jmp 0x10d1275
mov dword [esp + 0x1c], 0
xor edi, edi
lea eax, [esp + 0x25c]
mov dword [esp], eax
jmp 0x10d28d0
xor edx, edx
mov ecx, esi
or ecx, eax
je 0x10d1aeb
mov edx, 0xfffffc02
mov ebx, edi
mov dword [esp + 0x3c], edx
shld eax, esi, 8
shl esi, 8
mov edi, dword [esp + 0x24]
cmp edi, 0xe
mov dword [esp + 0x18], edx
mov dword [esp + 8], ebx
jg 0x10d1b46
mov edx, edi
and edx, 4
mov ecx, edi
or ecx, 4
imul ecx, edx
xor edx, 4
and edi, 0xfb
imul edi, edx
add ecx, edi
xor edx, edx
mov edi, 0x8000000
shrd edx, edi, cl
shr edi, cl
test cl, 0x20
je 0x10d1b39
mov edx, edi
xor edi, edi
mov ecx, dword [esp]
add esi, edx
adc eax, edi
mov edi, dword [esp + 8]
jmp 0x10d1b4b
mov edi, ebx
mov ecx, dword [esp]
lea ecx, [ecx + ecx*2]
xor ecx, 1
mov byte [esp + ecx + 0x2c], 0x30
movsx ecx, byte [esp + 0x2c]
lea edx, [esp + 0x2c]
mov byte [ecx + edx + 2], pe_nt_image_headers32
add byte [esp + 0x2c], 2
mov ecx, eax
shr ecx, 0x1c
movzx ecx, byte [edi + ecx]
mov byte [esp + 0x9c], cl
mov ebx, dword [esp + 0x24]
test ebx, ebx
je 0x10d1c13
movzx ecx, byte [section..data]
mov edx, ecx
add dl, cl
and dl, 0x6e
sub cl, dl
add cl, 0x37
mov byte [esp + 0x9d], cl
lea ecx, [esp + 0x9e]
mov dword [esp + 0x10], ecx
mov ecx, ebx
cmp ebx, 0xd
jb 0x10d1bb6
mov ecx, 0xd
mov edx, ebx
sub edx, ecx
mov dword [esp + 0xc], edx
jg 0x10d1bc8
mov dword [esp + 0xc], 0
mov edi, ecx
and edi, 3
je 0x10d20f5
mov dword [esp], ecx
xor edx, edx
mov ecx, dword [esp + 8]
nop
nop
nop
nop
mov ebx, eax
shr ebx, 0x18
and ebx, 0xf
movzx ebx, byte [ecx + ebx]
shld eax, esi, 4
mov byte [esp + edx + 0x9e], bl
shl esi, 4
inc edx
cmp edi, edx
jne 0x10d1be0
lea edi, [esp + 0x9e]
lea ebx, [edi + edx]
mov ecx, dword [esp]
sub ecx, edx
jmp 0x10d20fc
lea ebx, [esp + 0x9d]
mov dword [esp + 0x10], ebx
mov dword [esp + 0xc], 0
mov dword [esp + 8], ebx
jmp 0x10d216f
mov dword [esp + 0x18], eax
mov eax, dword [esp]
mov dword [esp + 0x20], eax
mov ecx, dword [esp + 4]
test ecx, 0x100
mov dword [esp + 4], ecx
jne 0x10d1dc7
mov dword [esp + 0x24], esi
mov esi, 0x200
xor ebx, ebx
movzx eax, byte [0x111e001]
mov byte [esp + 0xc], al
mov edx, dword [esp + 0x18]
nop
nop
nop
nop
nop
nop
nop
nop
mov dword [esp + 8], ebx
cmp edi, 0x5f5e100
mov eax, edx
sbb eax, 0
jb 0x10d1cb0
push 0
push 0x5f5e100
push edx
push edi
call fcn.010dc720
mov dword [esp + 0x18], edx
mov ebx, edi
imul ecx, eax, 0x5f5e100
sub ebx, ecx
mov ecx, dword [esp + 4]
mov edi, eax
jmp 0x10d1cbc
mov dword [esp + 0x18], 0
mov ebx, edi
xor edi, edi
lea eax, [esp + 0x54]
add eax, esi
mov dword [esp], eax
test cl, 0x40
jne 0x10d1d93
mov dword [esp + 0x4c], edi
mov ecx, 0x51eb851f
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, ebx
mul ecx
shr edx, 5
imul eax, edx, 0x64
mov edi, ebx
sub edi, eax
movzx eax, word [edi + edi + str.00010203040506070809101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899]
mov word [esp + esi + 0x5a], ax
add esi, 0xfffffffe
cmp ebx, 0x64
mov ebx, edx
jae 0x10d1ce0
mov ecx, dword [esp + 4]
mov edi, dword [esp + 0x4c]
mov eax, edi
mov edx, dword [esp + 0x18]
or eax, edx
je 0x10d1f02
lea eax, [esp + esi]
add eax, 0x5c
cmp eax, dword [esp]
mov ebx, dword [esp + 8]
jne 0x10d1d46
jmp 0x10d1c70
inc ebx
mov byte [esp + esi + 0x5b], 0x30
dec esi
lea eax, [esp + esi]
add eax, 0x5c
cmp eax, dword [esp]
je 0x10d1c70
test cl, 0x40
je 0x10d1d31
cmp ebx, 3
jne 0x10d1d30
movzx eax, byte [esp + 0xc]
mov byte [esp + esi + 0x5b], al
dec esi
dec dword [esp]
xor ebx, ebx
jmp 0x10d1d37
inc eax
mov dword [esp + 8], eax
mov eax, ebx
mov edx, 0xcccccccd
mul edx
shr edx, 3
lea eax, [edx + edx]
lea eax, [eax + eax*4]
sub ebx, eax
or bl, 0x30
mov byte [esp + esi + 0x5b], bl
dec esi
mov ebx, edx
test ebx, ebx
je 0x10d1d0d
test cl, 0x40
je 0x10d1d75
mov eax, dword [esp + 8]
cmp eax, 3
jne 0x10d1d70
movzx eax, byte [esp + 0xc]
mov byte [esp + esi + 0x5b], al
dec esi
dec dword [esp]
mov dword [esp + 8], 0
test ebx, ebx
jne 0x10d1d9b
jmp 0x10d1d0d
mov edx, edi
mov eax, 1
cmp esi, 0xffffffff
je 0x10d1dd5
mov eax, esi
xor edi, edi
cmp edx, 0x400
mov ecx, dword [esp + 0x18]
sbb ecx, 0
jb 0x10d1de8
mov edi, eax
mov dword [esp + 0x50], edx
mov eax, dword [esp + 0x18]
mov dword [esp + 0x54], eax
fild qword [esp + 0x50]
mov ecx, dword [esp + 4]
xor eax, eax
test ecx, 0x800
sete al
fld qword [eax*8 + 0x111b550]
cmp ecx, 0x3ffffff
ja 0x10d1eaf
fld st(0)
fchs
fxch st(1)
fucom st(2)
fnstsw ax
sahf
jbe 0x10d1e32
fxch st(2)
fucom st(1)
fnstsw ax
sahf
fxch st(2)
ja 0x10d1ead
fdiv st(2), st(0)
mov eax, ecx
add ecx, 0x1000000
cmp eax, 0x2ffffff
ja 0x10d1ead
mov edx, eax
fucom st(2)
fnstsw ax
sahf
jbe 0x10d1e57
fxch st(2)
fucom st(1)
fnstsw ax
sahf
fxch st(2)
ja 0x10d1ead
fdiv st(2), st(0)
mov eax, edx
lea ecx, [edx + 0x2000000]
cmp edx, 0x1ffffff
ja 0x10d1ead
fucom st(2)
fnstsw ax
sahf
jbe 0x10d1e7b
fxch st(2)
fucom st(1)
fnstsw ax
sahf
fxch st(2)
ja 0x10d1ead
fdiv st(2), st(0)
mov eax, edx
lea ecx, [edx + 0x3000000]
cmp edx, 0xffffff
ja 0x10d1ead
fucom st(2)
fnstsw ax
sahf
jbe 0x10d3518
fxch st(2)
fucom st(1)
fstp st(1)
fnstsw ax
sahf
fldz
fxch st(1)
fxch st(2)
jbe 0x10d3518
fstp st(0)
fstp st(0)
mov esi, ecx
mov ecx, 6
cmp edi, 0xffffffff
je 0x10d1ebf
mov ecx, edi
sub esp, 0x18
fstp qword [esp + 8]
lea eax, [esp + 0x54]
mov dword [esp + 4], eax
lea eax, [esp + 0x74]
mov dword [esp], eax
mov dword [esp + 0x24], ecx
mov dword [esp + 0x10], ecx
lea ecx, [esp + 0x28]
lea edx, [esp + 0x34]
call fcn.010d3570
add esp, 0x18
mov ecx, esi
test eax, eax
je 0x10d22d4
or ecx, 0x80
jmp 0x10d22d4
cmp byte [esp + esi + 0x5c], 0x30
sete al
cmp esi, 0x200
mov ebx, ecx
setne cl
mov byte [esp + 0x34], 0
mov byte [esp + 0x2c], 0
mov dl, 0x2d
test bl, bl
mov ebx, dword [esp + 0x28]
js 0x10d1f3b
mov dl, 0x20
test byte [esp + 4], 4
jne 0x10d1f3b
mov dl, 0x2b
test byte [esp + 4], 2
je 0x10d1f44
mov byte [esp + 0x2c], 1
mov byte [esp + 0x2d], dl
and cl, al
movzx eax, cl
add esi, eax
lea eax, [esp + esi]
add eax, 0x5c
lea edi, [esi - 0x200]
neg edi
mov dword [esp + 0x1c], edi
cmp esi, 0x200
jne 0x10d1f7c
mov byte [eax - 1], 0x30
dec eax
mov dword [esp], eax
mov dword [esp + 0x1c], 1
mov edi, 1
jmp 0x10d1f7f
mov dword [esp], eax
mov edx, dword [esp + 0x24]
test edx, edx
jg 0x10d1f89
xor edx, edx
mov dword [esp + 0xc], 0
add edi, 0x3000000
jmp 0x10d28da
mov byte [esp + 0x36], 0x2d
mov ebx, 1
sub ebx, eax
mov dword [esp], edi
xor eax, eax
cmp ebx, 0x64
setge al
mov esi, eax
mov eax, ebx
mov ecx, 0x66666667
imul ecx
mov ecx, edx
mov eax, edx
shr eax, 0x1f
sar ecx, 2
add ecx, eax
lea eax, [ecx + ecx]
lea eax, [eax + eax*4]
mov edi, ebx
sub ebx, eax
mov eax, ecx
mov edx, 0x66666667
imul edx
mov eax, edx
shr eax, 0x1f
sar edx, 2
add edx, eax
lea eax, [esi + 4]
add bl, 0x30
add edx, edx
lea edx, [edx + edx*4]
mov dword [esp + 8], edx
mov dword [esp + 0x18], eax
mov byte [esp + 0x34], al
mov byte [esp + esi + 0x38], bl
mov edx, ecx
sub edx, dword [esp + 8]
add dl, 0x30
mov byte [esp + esi + 0x37], dl
cmp edi, 0x64
jl 0x10d2043
mov eax, edi
mov ecx, 0x51eb851f
mul ecx
mov ecx, edx
shr ecx, 5
mov eax, ecx
mov edx, 0x1999999a
mul edx
add edx, edx
lea eax, [edx + edx*4]
mov edx, ecx
sub edx, eax
or dl, 0x30
lea eax, [esp + 0x34]
mov esi, dword [esp + 0x18]
mov byte [esi + eax - 2], dl
mov edi, dword [esp + 0xc]
sub edi, dword [esp + 0x24]
inc edi
mov dword [esp + 0xc], edi
mov dword [esp + 0x3c], ecx
mov edi, 0x3000001
mov ebx, dword [esp + 0x28]
jmp 0x10d2831
mov eax, dword [esp]
add eax, edx
mov edi, dword [esp + 0xc]
add edi, edx
mov cl, 1
mov ebx, dword [esp + 0x28]
add dword [esp + 0x20], 8
mov edx, edi
mov dword [esp + 0xc], edi
mov dword [esp + 0x1c], edi
mov edx, dword [esp + 0x3c]
cmp edx, 0xfffffffd
jl 0x10d20b3
cmp edx, dword [esp]
jg 0x10d20b3
test edx, edx
jle 0x10d22c0
sub dword [esp + 0xc], edx
mov ecx, dword [esp + 4]
jg 0x10d22d4
mov dword [esp + 0xc], 0
jmp 0x10d22d4
mov edx, dword [esp + 0xc]
cmp eax, edx
jle 0x10d20c9
dec edx
mov dword [esp + 0xc], edx
mov ecx, dword [esp + 4]
jmp 0x10d1579
mov dword [esp + 0xc], 0
test cl, cl
je 0x10d2655
mov ecx, eax
not ecx
lea eax, [ecx + eax*2]
mov dword [esp + 0xc], eax
mov ecx, dword [esp + 4]
jmp 0x10d1579
add ecx, 3
jmp case.0x10d1266.74
lea ebx, [esp + 0x9e]
cmp dword [esp + 0x24], 4
jb 0x10d2164
mov edi, eax
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov dword [esp], ecx
mov edx, eax
shr edx, 0x18
and edx, 0xf
mov ecx, dword [esp + 8]
movzx edx, byte [ecx + edx]
mov byte [ebx], dl
mov edx, eax
shr edx, 0x14
and edx, 0xf
movzx edx, byte [ecx + edx]
mov byte [ebx + 1], dl
mov edx, eax
shr edx, 0x10
and edx, 0xf
movzx edx, byte [ecx + edx]
mov byte [ebx + 2], dl
shld edi, esi, 0x10
shl esi, 0x10
shr eax, 0xc
and eax, 0xf
movzx eax, byte [ecx + eax]
mov ecx, dword [esp]
mov byte [ebx + 3], al
add ebx, 4
mov eax, edi
add ecx, 0xfffffffc
jne 0x10d2110
lea eax, [esp + 0x9e]
mov dword [esp + 8], eax
mov eax, dword [esp + 0x18]
mov edx, dword [esp + 0x4c]
cmp dl, 0x41
setne dl
shl dl, 5
or dl, 0x50
mov byte [esp + 0x35], dl
test eax, eax
js 0x10d2192
mov byte [esp + 0x36], 0x2b
jmp 0x10d2199
mov byte [esp + 0x36], 0x2d
neg eax
mov dword [esp], 6
cmp eax, 0x3e7
ja 0x10d21c3
mov dword [esp], 5
cmp eax, 0x63
ja 0x10d21c3
mov dword [esp], 4
cmp eax, 9
jbe 0x10d261b
mov ecx, 0xcccccccd
mov edi, eax
mul ecx
shr edx, 2
and edx, 0xfffffffe
lea esi, [edx + edx*4]
mov eax, edi
mov ecx, 0x66666667
imul ecx
mov ecx, edx
mov dword [esp + 0x18], edi
sub edi, esi
mov eax, edx
shr eax, 0x1f
sar ecx, 2
add ecx, eax
mov eax, ecx
mov edx, 0x66666667
imul edx
mov eax, dword [esp]
mov byte [esp + 0x34], al
mov esi, eax
mov eax, edi
or al, 0x30
mov byte [esp + esi + 0x34], al
mov eax, edx
shr eax, 0x1f
sar edx, 2
add edx, eax
add edx, edx
lea eax, [edx + edx*4]
sub ecx, eax
mov eax, esi
not eax
lea esi, [eax + esi*2]
add cl, 0x30
mov byte [esp + esi + 0x34], cl
cmp esi, 4
jb 0x10d2626
mov eax, dword [esp + 0x18]
mov ecx, 0x51eb851f
imul ecx
mov ecx, edx
mov eax, edx
shr eax, 0x1f
sar ecx, 5
add ecx, eax
mov eax, ecx
mov edx, 0x66666667
imul edx
add esi, esi
sub esi, dword [esp]
mov eax, edx
shr eax, 0x1f
sar edx, 2
add edx, eax
add edx, edx
lea eax, [edx + edx*4]
sub ecx, eax
add cl, 0x30
mov byte [esp + esi + 0x34], cl
cmp esi, 4
jb 0x10d2626
mov dword [esp], esi
mov eax, dword [esp + 0x18]
mov ecx, 0x10624dd3
imul ecx
mov ecx, edx
mov eax, edx
shr eax, 0x1f
sar ecx, 6
add ecx, eax
mov eax, ecx
mov edx, 0x66666667
imul edx
mov eax, dword [esp]
not eax
lea eax, [eax + esi*2]
mov esi, edx
shr esi, 0x1f
shr edx, 2
add edx, esi
add edx, edx
lea edx, [edx + edx*4]
sub ecx, edx
add cl, 0x30
mov byte [esp + eax + 0x34], cl
jmp 0x10d2626
mov esi, dword [esp + 0xc]
cmp eax, esi
mov ecx, dword [esp + 4]
jl 0x10d22ce
mov eax, esi
sub eax, edx
mov dword [esp + 0xc], eax
mov byte [esp + 0x34], 0
mov byte [esp + 0x2c], 0
mov al, 0x2d
test cl, cl
js 0x10d22f2
mov al, 0x20
test cl, 4
jne 0x10d22f2
mov al, 0x2b
test cl, 2
je 0x10d22fb
mov byte [esp + 0x2c], 1
mov byte [esp + 0x2d], al
mov dword [esp + 4], ecx
mov ecx, dword [esp + 0x3c]
cmp ecx, 0x7000
jne 0x10d2319
xor edi, edi
mov eax, dword [esp + 0x10]
mov dword [esp], eax
jmp 0x10d28d0
test ecx, ecx
jle 0x10d2395
xor edi, edi
test byte [esp + 4], 0x40
je 0x10d233d
mov edi, 0x258
sub edi, ecx
mov eax, edi
mov edx, 0xaaaaaaab
mul edx
shr edx, 1
lea eax, [edx + edx*2]
sub edi, eax
cmp ecx, dword [esp + 0x1c]
jae 0x10d2419
mov esi, edi
xor eax, eax
lea edi, [esp + 0x9c]
jmp 0x10d2380
mov esi, ecx
and esi, 0x40
shr esi, 6
movzx ecx, byte [0x111e001]
mov byte [edi], cl
inc edi
mov edx, edi
mov ecx, dword [esp + 0x10]
movzx ecx, byte [ecx + eax]
inc edi
mov byte [edx], cl
inc eax
mov ecx, dword [esp + 0x3c]
cmp eax, ecx
jae 0x10d246e
mov ecx, dword [esp + 4]
test cl, 0x40
je 0x10d2366
mov edx, esi
inc edx
cmp edx, 4
je 0x10d2354
mov esi, edx
jmp 0x10d2366
mov byte [esp + 0x9c], 0x30
lea edx, [esp + 0x9d]
cmp dword [esp + 0xc], 0
je 0x10d23c2
movzx eax, byte [section..data]
xor al, 0x37
mov byte [esp + 0x9d], al
lea edx, [esp + 0x9e]
neg ecx
mov eax, dword [esp + 0xc]
mov ebx, eax
cmp eax, ecx
jl 0x10d23d0
mov ebx, ecx
test ebx, ebx
mov dword [esp + 8], ebx
je 0x10d2596
mov eax, edx
and eax, 3
je 0x10d2596
mov ecx, edx
mov edi, edx
not edi
and edi, 3
lea esi, [ebx - 1]
cmp edi, esi
jb 0x10d23f9
mov edi, esi
lea eax, [edi + 1]
push eax
push 0x30
mov ebx, ecx
push ecx
call fcn.010dc8a0
add esp, 0xc
lea edx, [edi + ebx]
inc edx
sub esi, edi
mov ebx, dword [esp + 8]
jmp 0x10d2598
xor ecx, ecx
mov esi, 0xffffffff
mov ebx, 1
lea edx, [esp + 0x9c]
jmp 0x10d244b
mov eax, dword [esp + 0x10]
movzx eax, byte [eax + ebx - 1]
mov byte [edx], al
mov eax, edx
inc edx
inc ecx
dec esi
inc ebx
cmp ecx, dword [esp + 0x1c]
jae 0x10d24e0
test byte [esp + 4], 0x40
je 0x10d2430
inc edi
cmp edi, 4
jne 0x10d2430
mov edi, dword [esp + 4]
and edi, 0x40
shr edi, 6
movzx eax, byte [0x111e001]
mov byte [edx], al
inc edx
jmp 0x10d2430
mov dword [esp + 0x18], edi
cmp dword [esp + 0xc], 0
je 0x10d248f
movzx ecx, byte [section..data]
xor cl, 0x37
mov byte [edx + 1], cl
add edx, 2
mov ecx, dword [esp + 0x3c]
mov edi, edx
mov edx, dword [esp + 0x1c]
mov esi, edx
sub esi, ecx
cmp esi, dword [esp + 0xc]
jbe 0x10d24a7
mov edx, dword [esp + 0xc]
add edx, ecx
mov dword [esp + 0x1c], edx
mov dword [esp], edi
cmp eax, edx
jae 0x10d25ee
mov edi, dword [esp + 0x18]
mov esi, dword [esp]
nop
nop
nop
nop
nop
nop
nop
mov ecx, dword [esp + 0x10]
movzx ecx, byte [ecx + eax]
mov byte [esi], cl
inc esi
inc eax
mov edx, dword [esp + 0x1c]
cmp eax, edx
jb 0x10d24c0
mov dword [esp], esi
mov ecx, dword [esp + 0x3c]
jmp 0x10d25f2
mov dword [esp + 8], eax
mov dword [esp], edi
mov edi, dword [esp + 0x3c]
mov eax, edi
sub eax, ecx
jbe 0x10d2612
test byte [esp + 4], 0x40
jne 0x10d273e
cmp edi, ecx
je 0x10d2560
mov ecx, edx
and ecx, 3
je 0x10d2560
mov ecx, 2
sub ecx, dword [esp + 8]
and ecx, 3
mov eax, edi
sub eax, ebx
mov dword [esp + 0x24], ecx
mov dword [esp + 0x18], ecx
cmp ecx, eax
mov ecx, dword [esp + 0x24]
jb 0x10d252d
mov ecx, eax
mov dword [esp + 0x24], ecx
lea eax, [ecx + 1]
push eax
push 0x30
push edx
call fcn.010dc8a0
add esp, 0xc
add esi, edi
mov eax, dword [esp + 0x18]
cmp esi, eax
jb 0x10d254c
mov esi, eax
mov eax, dword [esp + 8]
mov ecx, dword [esp + 0x24]
lea edx, [eax + ecx]
add edx, 2
sub edi, esi
sub edi, ebx
mov eax, edi
cmp eax, 4
mov ebx, dword [esp + 0x28]
mov edi, dword [esp]
jb 0x10d2745
mov dword [edx], 0x30303030
add edx, 4
mov ecx, eax
not ecx
and ecx, 4
and eax, 0xfffffffb
sub eax, ecx
cmp eax, 3
ja 0x10d2570
jmp 0x10d2745
mov ebx, ecx
jmp 0x10d284f
mov esi, ebx
cmp esi, 4
jl 0x10d25d4
mov eax, esi
cmp esi, 7
jl 0x10d25a9
mov eax, 7
neg eax
lea edi, [esi + eax]
add edi, 3
and edi, 0xfffffffc
lea eax, [edi + 4]
push eax
push 0x30
mov ebx, edx
push edx
call fcn.010dc8a0
add esp, 0xc
lea edx, [edi + ebx]
add edx, 4
sub esi, edi
add esi, 0xfffffffc
mov ebx, dword [esp + 8]
test esi, esi
je 0x10d265e
push esi
push 0x30
mov edi, edx
push edx
call fcn.010dc8a0
add esp, 0xc
add edi, esi
jmp 0x10d2660
mov edi, dword [esp + 0x18]
lea eax, [esp + 0x9c]
sub edi, eax
add edi, 0x3000000
mov eax, dword [esp + 0xc]
sub eax, edx
add eax, ecx
mov dword [esp + 0xc], eax
jmp 0x10d2731
mov ebx, dword [esp + 0x28]
jmp 0x10d2774
mov byte [esp + 0x34], 3
or al, 0x30
mov byte [esp + 0x37], al
add dword [esp + 0x20], 8
mov eax, ebx
sub eax, dword [esp + 8]
mov dword [esp + 0x3c], eax
lea eax, [esp + 0x9c]
sub ebx, eax
mov dword [esp + 0x1c], ebx
xor edx, edx
mov edi, 0x3000001
mov dword [esp], eax
mov ebx, dword [esp + 0x28]
jmp 0x10d28da
mov ecx, dword [esp + 4]
jmp 0x10d1579
mov edi, edx
mov eax, dword [esp + 0x1c]
lea ecx, [eax + ebx]
cmp ecx, dword [esp + 0xc]
jle 0x10d2677
mov eax, dword [esp + 0xc]
sub eax, ebx
mov dword [esp + 0x1c], eax
test eax, eax
je 0x10d271f
mov edx, dword [esp + 0xc]
mov esi, edx
cmp edx, ecx
jl 0x10d268b
mov esi, ecx
mov ecx, eax
and ecx, 3
je 0x10d26c9
mov dword [esp], esi
xor esi, esi
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov ebx, edi
mov edi, dword [esp + 0x10]
lea edx, [edi + 1]
mov dword [esp + 0x10], edx
movzx edx, byte [edi]
mov edi, ebx
mov byte [ebx + esi], dl
inc esi
cmp ecx, esi
jne 0x10d26a0
add edi, esi
mov ecx, eax
sub ecx, esi
mov ebx, dword [esp + 8]
mov esi, dword [esp]
jmp 0x10d26cb
mov ecx, eax
mov edx, ebx
sub edx, esi
cmp edx, 0xfffffffc
ja 0x10d271f
mov edx, dword [esp + 0x10]
lea esi, [edx + 1]
mov dword [esp + 0x10], esi
movzx edx, byte [edx]
mov byte [edi], dl
mov edx, dword [esp + 0x10]
lea esi, [edx + 1]
mov dword [esp + 0x10], esi
movzx edx, byte [edx]
mov byte [edi + 1], dl
mov edx, dword [esp + 0x10]
lea esi, [edx + 1]
mov dword [esp + 0x10], esi
movzx edx, byte [edx]
mov byte [edi + 2], dl
mov edx, dword [esp + 0x10]
lea esi, [edx + 1]
mov dword [esp + 0x10], esi
movzx edx, byte [edx]
mov byte [edi + 3], dl
add edi, 4
add ecx, 0xfffffffc
jne 0x10d26d4
mov dword [esp], edi
add ebx, eax
sub dword [esp + 0xc], ebx
mov edi, 0x3000001
mov ebx, dword [esp + 0x28]
mov ecx, dword [esp + 4]
jmp 0x10d27ac
mov eax, ecx
jmp 0x10d28b1
mov ebx, dword [esp + 0x28]
mov edi, dword [esp]
test eax, eax
je 0x10d2774
mov ecx, dword [esp + 4]
jmp 0x10d2758
mov byte [edx], 0x30
dec eax
inc edx
test eax, eax
je 0x10d2778
test cl, 0x40
je 0x10d274f
inc edi
cmp edi, 4
jne 0x10d274f
movzx ecx, byte [0x111e001]
mov byte [edx], cl
mov ecx, dword [esp + 4]
xor edi, edi
jmp 0x10d2753
mov ecx, dword [esp + 4]
mov edi, edx
lea eax, [esp + 0x9c]
sub edi, eax
add edi, 0x3000000
cmp dword [esp + 0xc], 0
je 0x10d27a1
movzx eax, byte [section..data]
xor al, 0x37
mov byte [edx], al
inc edx
mov dword [esp], edx
jmp 0x10d27ac
mov dword [esp], edx
mov dword [esp + 0xc], 0
test ecx, 0x100
je 0x10d2831
mov eax, ecx
and eax, 0x400
sete byte [esp + 0x34]
mov byte [esp + 0x35], 0x20
cmp ecx, 0x1000000
jb 0x10d2831
mov dword [esp + 0x18], edi
mov esi, ecx
shr ecx, 0x18
mov ebx, eax
shr ebx, 0xa
mov edx, 2
sub edx, ebx
cmp eax, 1
mov eax, 0
adc al, 1
test esi, 0x800
jne 0x10d2801
movzx ecx, byte [ecx + str._kMGT]
mov byte [esp + edx + 0x34], cl
jmp 0x10d2825
movzx ecx, byte [ecx + str._KMGT]
mov byte [esp + edx + 0x34], cl
mov ecx, esi
and ecx, 0x1800
cmp ecx, 0x800
jne 0x10d2825
movzx eax, al
mov byte [esp + eax + 0x35], 0x69
inc eax
mov ebx, dword [esp + 0x28]
mov byte [esp + 0x34], al
mov edi, dword [esp + 0x18]
lea eax, [esp + 0x9c]
mov ecx, dword [esp]
sub ecx, eax
mov dword [esp + 0x1c], ecx
xor edx, edx
mov dword [esp], eax
jmp 0x10d28da
mov edx, esi
mov ebx, edi
mov edi, edx
mov dword [esp + 8], ebx
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, ebx
mov esi, edi
cmp edi, 4
jb 0x10d2887
mov ecx, dword [eax]
mov edi, ecx
not edi
add ecx, 0xfefefeff
and ecx, edi
lea ebx, [eax + 4]
lea edi, [esi - 4]
test ecx, 0x80808080
je 0x10d2860
jmp 0x10d288b
test esi, esi
je 0x10d28aa
mov edi, dword [esp + 8]
add edi, edx
xor edx, edx
mov ebx, dword [esp + 0x28]
cmp byte [eax + edx], 0
je 0x10d28a6
inc edx
cmp esi, edx
jne 0x10d2897
mov eax, edi
jmp 0x10d28ae
add eax, edx
jmp 0x10d28ae
mov ebx, dword [esp + 0x28]
mov ecx, dword [esp]
add dword [esp + 0x20], 4
sub eax, ecx
mov dword [esp + 0x1c], eax
mov byte [esp + 0x2c], 0
mov byte [esp + 0x34], 0
mov dword [esp + 0x3c], 0
xor edi, edi
mov dword [esp + 0xc], 0
xor edx, edx
mov dword [esp + 0x18], edi
mov ecx, dword [esp + 0x1c]
cmp edx, ecx
jg 0x10d28e8
mov edx, ecx
movsx eax, byte [esp + 0x2c]
mov edi, edx
movsx esi, byte [esp + 0x34]
mov edx, dword [esp + 0xc]
mov dword [esp + 0x24], edi
add edx, edi
add edx, eax
add edx, esi
mov esi, dword [esp + 0x40]
cmp esi, edx
jg 0x10d290c
mov esi, edx
sub esi, edx
mov edx, esi
sub dword [esp + 0x24], ecx
mov ecx, dword [esp + 4]
test cl, 1
jne 0x10d2932
test cl, 0x10
mov esi, dword [esp + 0x14]
jne 0x10d293a
mov dword [esp + 4], 0
mov ecx, edx
jmp 0x10d294a
mov ecx, edx
mov esi, dword [esp + 0x14]
jmp 0x10d294a
mov ecx, dword [esp + 0x24]
cmp edx, ecx
jg 0x10d2944
mov edx, ecx
mov dword [esp + 0x24], edx
xor ecx, ecx
mov dword [esp + 0x40], ecx
add ecx, dword [esp + 0x24]
mov edx, dword [esp]
je 0x10d2e24
test byte [esp + 4], 1
jne 0x10d2ab8
mov ecx, dword [esp + 0x40]
test ecx, ecx
jg 0x10d2994
jmp 0x10d2ab8
mov eax, ecx
not eax
and eax, edx
not edx
and ecx, edx
sub ecx, eax
test ecx, ecx
jle 0x10d2aaf
mov eax, esi
sub eax, ebx
add eax, 0x200
mov edx, ecx
cmp ecx, eax
jl 0x10d29a5
mov edx, eax
cmp dword [ebp + 8], 0
jne 0x10d29ad
mov edx, ecx
test edx, edx
mov dword [esp + 0x40], ecx
mov dword [esp + 8], edx
mov dword [esp + 0x14], esi
je 0x10d2a20
mov eax, ebx
and eax, 3
je 0x10d2a20
mov esi, ebx
mov edi, ebx
not edi
and edi, 3
lea ebx, [edx - 1]
cmp edi, ebx
jb 0x10d29d6
mov edi, ebx
lea eax, [edi + 1]
push eax
push 0x20
push esi
call fcn.010dc8a0
add esp, 0xc
lea ecx, [edi + esi]
inc ecx
sub ebx, edi
mov esi, dword [esp + 0x14]
mov edx, dword [esp + 8]
cmp ebx, 4
jge 0x10d2a29
test ebx, ebx
je 0x10d2a68
push ebx
push 0x20
mov edi, esi
mov esi, ecx
push ecx
call fcn.010dc8a0
mov edx, dword [esp + 0x14]
add esp, 0xc
add esi, ebx
mov ebx, esi
mov esi, edi
jmp 0x10d2a6a
mov ecx, ebx
mov ebx, edx
cmp ebx, 4
jl 0x10d29f8
mov eax, ebx
cmp ebx, 7
jl 0x10d2a35
mov eax, 7
neg eax
lea edi, [ebx + eax]
add edi, 3
and edi, 0xfffffffc
lea eax, [edi + 4]
push eax
push 0x20
mov esi, ecx
push ecx
call fcn.010dc8a0
add esp, 0xc
lea ecx, [edi + esi]
add ecx, 4
sub ebx, edi
add ebx, 0xfffffffc
mov esi, dword [esp + 0x14]
mov edx, dword [esp + 8]
test ebx, ebx
jne 0x10d29fc
mov ebx, ecx
cmp dword [ebp + 8], 0
mov ecx, dword [esp + 0x40]
je 0x10d2980
mov eax, ebx
sub eax, esi
cmp eax, 0x1ff
jl 0x10d2980
add dword [esp + 0x44], eax
push eax
push dword [ebp + 0xc]
push esi
call dword [ebp + 8]
add esp, 0xc
test eax, eax
je 0x10d354c
mov ebx, eax
mov esi, eax
mov ecx, dword [esp + 0x40]
mov edx, dword [esp + 8]
jmp 0x10d2980
mov dword [esp + 0x40], ecx
movzx eax, byte [esp + 0x2c]
lea ecx, [esp + 0x2d]
mov dword [esp + 0x10], ecx
jmp 0x10d2ad5
movzx eax, byte [esp + 0x2c]
test al, al
je 0x10d2bed
movsx edx, al
mov ecx, esi
sub ecx, ebx
add ecx, 0x200
cmp ecx, edx
jl 0x10d2af0
mov ecx, edx
cmp dword [ebp + 8], 0
jne 0x10d2af8
mov ecx, edx
movzx eax, al
sub eax, ecx
mov byte [esp + 0x2c], al
test ecx, ecx
je 0x10d2b9b
mov eax, ecx
and eax, 3
je 0x10d2be0
mov dword [esp + 0x14], esi
xor edx, edx
nop
nop
nop
nop
nop
nop
mov esi, dword [esp + 0x10]
lea edi, [esi + 1]
mov dword [esp + 0x10], edi
mov edi, ebx
movzx ebx, byte [esi]
mov byte [edi + edx], bl
mov ebx, edi
inc edx
cmp eax, edx
jne 0x10d2b20
add ebx, edx
mov eax, ecx
sub eax, edx
mov esi, dword [esp + 0x14]
cmp ecx, 4
jb 0x10d2b9b
nop
nop
nop
nop
nop
nop
nop
mov ecx, dword [esp + 0x10]
lea edx, [ecx + 1]
mov dword [esp + 0x10], edx
movzx ecx, byte [ecx]
mov byte [ebx], cl
mov ecx, dword [esp + 0x10]
lea edx, [ecx + 1]
mov dword [esp + 0x10], edx
movzx ecx, byte [ecx]
mov byte [ebx + 1], cl
mov ecx, dword [esp + 0x10]
lea edx, [ecx + 1]
mov dword [esp + 0x10], edx
movzx ecx, byte [ecx]
mov byte [ebx + 2], cl
mov ecx, dword [esp + 0x10]
lea edx, [ecx + 1]
mov dword [esp + 0x10], edx
movzx ecx, byte [ecx]
mov byte [ebx + 3], cl
add ebx, 4
add eax, 0xfffffffc
jne 0x10d2b50
cmp dword [ebp + 8], 0
je 0x10d2ad0
mov eax, ebx
sub eax, esi
lea ecx, [eax + 1]
cmp ecx, 0x200
jl 0x10d2ad0
add dword [esp + 0x44], eax
push eax
push dword [ebp + 0xc]
push esi
call dword [ebp + 8]
add esp, 0xc
test eax, eax
je 0x10d354c
mov ebx, eax
mov esi, eax
jmp 0x10d2ad0
mov eax, ecx
cmp ecx, 4
jae 0x10d2b50
jmp 0x10d2b9b
mov dword [esp + 0x14], esi
mov eax, dword [esp + 0x18]
mov ecx, eax
shr ecx, 0x18
mov dword [esp + 8], ecx
xor esi, esi
mov ecx, dword [esp + 4]
test cl, 0x40
je 0x10d2c23
and eax, 0xffffff
add eax, dword [esp + 0x24]
mov esi, dword [esp + 8]
lea ecx, [esi + 1]
xor edx, edx
div ecx
mov ecx, dword [esp + 4]
sub esi, edx
cmp dword [esp + 0x24], 0
jle 0x10d34f7
mov eax, dword [esp + 0x24]
mov edx, dword [esp]
jmp 0x10d2c54
mov ecx, dword [esp + 4]
mov eax, dword [esp + 0x24]
sub eax, dword [esp + 0x18]
test eax, eax
jle 0x10d2e1b
mov dword [esp + 0x24], eax
cmp dword [ebp + 8], 0
je 0x10d2c7e
mov edi, ecx
mov eax, dword [esp + 0x14]
sub eax, ebx
add eax, 0x200
mov edx, dword [esp + 0x24]
mov ecx, edx
cmp edx, eax
jl 0x10d2c77
mov ecx, eax
mov edx, dword [esp]
mov eax, ecx
mov ecx, edi
test cl, 0x40
mov dword [esp + 0x18], eax
jne 0x10d2ce0
test eax, eax
je 0x10d2d52
mov eax, ebx
and eax, 3
je 0x10d2ce6
mov ecx, ebx
mov edi, ebx
not edi
and edi, 3
mov eax, dword [esp + 0x18]
lea ebx, [eax - 1]
cmp edi, ebx
jb 0x10d2cac
mov edi, ebx
lea eax, [edi + 1]
push eax
push 0x30
mov dword [esp + 0x30], ecx
push ecx
call fcn.010dc8a0
add esp, 0xc
mov ecx, dword [esp + 0x28]
add ecx, edi
inc ecx
sub ebx, edi
mov edx, dword [esp]
cmp ebx, 4
jge 0x10d2d00
jmp 0x10d2d1a
mov ecx, ebx
mov ebx, eax
jmp 0x10d2d1a
mov ecx, ebx
mov ebx, dword [esp + 0x18]
cmp ebx, 4
jl 0x10d2d1a
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov dword [ecx], 0x30303030
add ecx, 4
mov eax, ebx
xor eax, 4
and ebx, 0xfffffffb
add ebx, ebx
sub ebx, eax
cmp ebx, 3
jg 0x10d2d00
test ebx, ebx
je 0x10d2d30
test bl, 1
jne 0x10d2d40
mov eax, ebx
jmp 0x10d2d6c
mov ebx, ecx
jmp 0x10d2d73
mov al, 0x30
test byte [esp + 4], 0x40
je 0x10d2d66
cmp esi, dword [esp + 8]
je 0x10d2d5d
inc esi
jmp 0x10d2d66
mov ecx, ebx
mov ebx, eax
cmp ebx, 4
jge 0x10d2d00
jmp 0x10d2d1a
xor esi, esi
movzx eax, byte [0x111e001]
mov byte [ecx], al
inc ecx
lea eax, [ebx - 1]
cmp ebx, 1
mov ebx, ecx
jne 0x10d2dce
cmp dword [ebp + 8], 0
je 0x10d2c40
mov eax, ebx
mov ecx, dword [esp + 0x14]
sub eax, ecx
cmp eax, 0x1ff
jl 0x10d2c40
add dword [esp + 0x44], eax
push eax
push dword [ebp + 0xc]
push ecx
call dword [ebp + 8]
add esp, 0xc
test eax, eax
je 0x10d354c
mov ebx, eax
mov dword [esp + 0x14], eax
mov ecx, dword [esp + 4]
mov edx, dword [esp]
jmp 0x10d2c44
mov edx, dword [esp]
mov byte [ebx + 1], cl
add ebx, 2
add eax, 0xfffffffe
je 0x10d2d73
mov cl, 0x30
test byte [esp + 4], 0x40
je 0x10d2dde
cmp esi, dword [esp + 8]
je 0x10d2df0
inc esi
mov dl, 0x30
jmp 0x10d2df9
xor esi, esi
movzx edx, byte [0x111e001]
mov byte [ebx], dl
test byte [esp + 4], 0x40
je 0x10d2dc0
cmp esi, dword [esp + 8]
mov edx, dword [esp]
je 0x10d2e10
inc esi
jmp 0x10d2dc3
xor esi, esi
movzx ecx, byte [0x111e001]
jmp 0x10d2dc3
movzx eax, byte [esp + 0x2c]
mov esi, dword [esp + 0x14]
lea ecx, [esp + 0x2d]
mov dword [esp + 0x10], ecx
jmp 0x10d2e35
movzx eax, byte [esp + 0x2c]
test al, al
je 0x10d2f22
mov edx, dword [ebp + 8]
movsx ecx, al
mov dword [esp + 0x14], esi
mov eax, esi
sub eax, ebx
add eax, 0x200
cmp eax, ecx
jl 0x10d2e56
mov eax, ecx
mov esi, ebx
test edx, edx
jne 0x10d2e5e
mov eax, ecx
mov ebx, eax
xor ebx, ecx
mov edx, eax
not edx
and ecx, edx
add ecx, ecx
sub ecx, ebx
mov byte [esp + 0x2c], cl
test eax, eax
je 0x10d2e80
test al, 1
mov ebx, esi
jne 0x10d2e90
mov ecx, eax
jmp 0x10d2ea4
mov ebx, esi
mov esi, dword [esp + 0x14]
jmp 0x10d2ed9
mov ecx, dword [esp + 0x10]
lea esi, [ecx + 1]
mov dword [esp + 0x10], esi
movzx ecx, byte [ecx]
mov byte [ebx], cl
inc ebx
lea ecx, [edx + eax*2]
mov esi, dword [esp + 0x14]
mov edx, dword [esp]
cmp eax, 1
je 0x10d2edc
mov eax, dword [esp + 0x10]
lea edx, [eax + 1]
mov dword [esp + 0x10], edx
movzx eax, byte [eax]
mov byte [ebx], al
mov eax, dword [esp + 0x10]
lea edx, [eax + 1]
mov dword [esp + 0x10], edx
movzx eax, byte [eax]
mov byte [ebx + 1], al
add ebx, 2
add ecx, 0xfffffffe
jne 0x10d2eb0
mov edx, dword [esp]
cmp dword [ebp + 8], 0
je 0x10d2e30
mov ecx, ebx
not ecx
and ecx, esi
mov eax, esi
not eax
and eax, ebx
sub eax, ecx
cmp eax, 0x1ff
jl 0x10d2e30
add dword [esp + 0x44], eax
push eax
push dword [ebp + 0xc]
push esi
call dword [ebp + 8]
add esp, 0xc
test eax, eax
je 0x10d354c
mov ebx, eax
mov esi, eax
mov edx, dword [esp]
jmp 0x10d2e30
mov dword [esp + 0x14], esi
mov esi, dword [esp + 0x1c]
test esi, esi
jmp 0x10d2f33
sub esi, dword [esp]
mov ecx, dword [esp + 0xc]
je 0x10d30ed
mov eax, dword [esp + 0x14]
sub eax, ebx
add eax, 0x200
mov ecx, esi
cmp esi, eax
jl 0x10d2f50
mov ecx, eax
cmp dword [ebp + 8], 0
jne 0x10d2f58
mov ecx, esi
cmp ecx, 4
mov dword [esp], ecx
jl 0x10d2fb0
lea edi, [ecx - 4]
mov eax, edi
shr eax, 2
inc eax
and eax, 7
je 0x10d2fb4
mov dword [esp + 8], edi
shl eax, 2
xor edi, edi
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov ecx, dword [edx + edi]
mov dword [ebx + edi], ecx
add edi, 4
cmp eax, edi
jne 0x10d2f80
add ebx, edi
mov ecx, dword [esp]
sub ecx, edi
add edx, edi
mov eax, ecx
mov edi, dword [esp + 8]
cmp edi, 0x1c
jae 0x10d2fc0
jmp 0x10d3001
mov eax, ecx
jmp 0x10d3001
cmp edi, 0x1c
jb 0x10d3001
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [edx]
mov dword [ebx], eax
mov eax, dword [edx + 4]
mov dword [ebx + 4], eax
mov eax, dword [edx + 8]
mov dword [ebx + 8], eax
mov eax, dword [edx + 0xc]
mov dword [ebx + 0xc], eax
mov eax, dword [edx + 0x10]
mov dword [ebx + 0x10], eax
mov eax, dword [edx + 0x14]
mov dword [ebx + 0x14], eax
mov eax, dword [edx + 0x18]
mov dword [ebx + 0x18], eax
mov eax, dword [edx + 0x1c]
mov dword [ebx + 0x1c], eax
add ebx, 0x20
add edx, 0x20
lea eax, [ecx - 0x20]
add ecx, 0xffffffdc
cmp ecx, 0xfffffff8
mov ecx, eax
jb 0x10d2fc0
test eax, eax
je 0x10d3091
mov ecx, eax
and ecx, 7
je 0x10d30e0
mov dword [esp + 8], esi
mov esi, edx
xor edx, edx
nop
nop
nop
nop
mov edi, ebx
movzx ebx, byte [esi + edx]
mov byte [edi + edx], bl
mov ebx, edi
inc edx
cmp ecx, edx
jne 0x10d3020
add ebx, edx
mov ecx, eax
sub ecx, edx
add esi, edx
mov edx, esi
mov esi, dword [esp + 8]
cmp eax, 8
jb 0x10d3091
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
movzx eax, byte [edx]
mov byte [ebx], al
movzx eax, byte [edx + 1]
mov byte [ebx + 1], al
movzx eax, byte [edx + 2]
mov byte [ebx + 2], al
movzx eax, byte [edx + 3]
mov byte [ebx + 3], al
movzx eax, byte [edx + 4]
mov byte [ebx + 4], al
movzx eax, byte [edx + 5]
mov byte [ebx + 5], al
movzx eax, byte [edx + 6]
mov byte [ebx + 6], al
movzx eax, byte [edx + 7]
mov byte [ebx + 7], al
add ebx, 8
add edx, 8
add ecx, 0xfffffff8
jne 0x10d3050
cmp dword [ebp + 8], 0
je 0x10d2f30
mov eax, ebx
mov ecx, dword [esp + 0x14]
sub eax, ecx
cmp eax, 0x1ff
jl 0x10d2f30
mov edi, dword [ebp + 8]
mov dword [esp + 8], esi
mov esi, edx
add dword [esp + 0x44], eax
push eax
push dword [ebp + 0xc]
push ecx
call edi
add esp, 0xc
test eax, eax
je 0x10d354c
mov ebx, eax
mov dword [esp + 0x14], eax
mov edx, esi
mov esi, dword [esp + 8]
jmp 0x10d2f30
mov ecx, eax
cmp eax, 8
jae 0x10d3050
jmp 0x10d3091
test ecx, ecx
mov esi, dword [esp + 0x14]
jne 0x10d3238
lea eax, [esp + 0x35]
mov dword [esp + 0x10], eax
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
movzx ecx, byte [esp + 0x34]
test cl, cl
je 0x10d33a4
movsx edx, cl
mov eax, esi
sub eax, ebx
add eax, 0x200
cmp eax, edx
jl 0x10d312f
mov eax, edx
cmp dword [ebp + 8], 0
jne 0x10d3137
mov eax, edx
sub cl, al
mov byte [esp + 0x34], cl
test eax, eax
je 0x10d31db
mov ecx, eax
and ecx, 3
je 0x10d3220
mov dword [esp + 0x14], esi
xor edx, edx
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov esi, dword [esp + 0x10]
lea edi, [esi + 1]
mov dword [esp + 0x10], edi
mov edi, ebx
movzx ebx, byte [esi]
mov byte [edi + edx], bl
mov ebx, edi
inc edx
cmp ecx, edx
jne 0x10d3160
add ebx, edx
mov ecx, eax
sub ecx, edx
mov esi, dword [esp + 0x14]
cmp eax, 4
jb 0x10d31db
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esp + 0x10]
lea edx, [eax + 1]
mov dword [esp + 0x10], edx
movzx eax, byte [eax]
mov byte [ebx], al
mov eax, dword [esp + 0x10]
lea edx, [eax + 1]
mov dword [esp + 0x10], edx
movzx eax, byte [eax]
mov byte [ebx + 1], al
mov eax, dword [esp + 0x10]
lea edx, [eax + 1]
mov dword [esp + 0x10], edx
movzx eax, byte [eax]
mov byte [ebx + 2], al
mov eax, dword [esp + 0x10]
lea edx, [eax + 1]
mov dword [esp + 0x10], edx
movzx eax, byte [eax]
mov byte [ebx + 3], al
add ebx, 4
add ecx, 0xfffffffc
jne 0x10d3190
cmp dword [ebp + 8], 0
je 0x10d3110
mov eax, ebx
sub eax, esi
cmp eax, 0x1ff
jl 0x10d3110
add dword [esp + 0x44], eax
push eax
push dword [ebp + 0xc]
push esi
call dword [ebp + 8]
add esp, 0xc
test eax, eax
je 0x10d354c
mov ebx, eax
mov esi, eax
jmp 0x10d3110
mov ecx, eax
cmp eax, 4
jae 0x10d3190
jmp 0x10d31db
sub ecx, edx
je 0x10d30f9
mov eax, esi
sub eax, ebx
add eax, 0x200
mov edx, ecx
cmp ecx, eax
jl 0x10d3260
mov edx, eax
cmp dword [ebp + 8], 0
je 0x10d3266
test edx, edx
jne 0x10d326c
jmp 0x10d32c7
cmp dword [ebp + 8], 0
jne 0x10d324f
mov edx, ecx
test edx, edx
je 0x10d32c7
mov dword [esp + 0xc], ecx
mov dword [esp + 0x14], esi
lea ecx, [edx + 3]
mov edi, edx
mov eax, ebx
xor ebx, ebx
mov dword [esp + 8], edx
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov dword [esp], ecx
mov esi, eax
add eax, ebx
mov edx, eax
xor edx, 0xfffffffc
mov ecx, eax
or ecx, 3
test ecx, edx
je 0x10d32e0
mov eax, esi
mov byte [esi + ebx], 0x30
dec edi
inc ebx
mov ecx, dword [esp]
dec ecx
cmp dword [esp + 8], ebx
jne 0x10d3290
add eax, ebx
mov ebx, eax
mov esi, dword [esp + 0x14]
mov ecx, dword [esp + 0xc]
mov edx, dword [esp + 8]
cmp dword [ebp + 8], 0
jne 0x10d336b
jmp 0x10d3230
mov ecx, eax
mov dword [esp + 0x28], esi
mov edx, dword [esp + 8]
mov esi, edx
sub esi, ebx
cmp esi, 4
jl 0x10d333f
cmp edi, 7
jl 0x10d32fd
mov edi, 7
mov eax, edx
sub eax, edi
sub eax, ebx
add eax, 3
and eax, 0xfffffffc
add eax, 4
push eax
push 0x30
push ecx
call fcn.010dc8a0
mov edx, dword [esp + 0x14]
add esp, 0xc
mov ecx, dword [esp]
sub ecx, edi
and ecx, 0xfffffffc
mov eax, dword [esp + 0x28]
add eax, ecx
lea edi, [ebx + eax]
add edi, 4
mov esi, edx
sub esi, ecx
sub esi, ebx
add esi, 0xfffffffc
test esi, esi
jne 0x10d3345
jmp 0x10d3357
mov edi, ecx
test esi, esi
je 0x10d3357
push esi
push 0x30
push edi
call fcn.010dc8a0
mov edx, dword [esp + 0x14]
add esp, 0xc
add edi, esi
mov ebx, edi
mov esi, dword [esp + 0x14]
mov ecx, dword [esp + 0xc]
cmp dword [ebp + 8], 0
je 0x10d3230
mov eax, ebx
sub eax, esi
cmp eax, 0x1ff
jl 0x10d3230
mov edi, edx
mov edx, esi
mov esi, ecx
add dword [esp + 0x44], eax
push eax
push dword [ebp + 0xc]
push edx
call dword [ebp + 8]
add esp, 0xc
test eax, eax
je 0x10d354c
mov ebx, eax
mov ecx, esi
mov esi, ebx
mov edx, edi
jmp 0x10d3230
test byte [esp + 4], 1
je 0x10d3507
mov ecx, dword [esp + 0x40]
test ecx, ecx
mov eax, dword [esp + 0x48]
jle 0x10d350b
jne 0x10d33dc
jmp 0x10d350b
mov eax, dword [esp + 0x48]
sub ecx, edx
je 0x10d350b
mov eax, esi
sub eax, ebx
add eax, 0x200
mov edx, ecx
cmp ecx, eax
jl 0x10d33ed
mov edx, eax
cmp dword [ebp + 8], 0
jne 0x10d33f5
mov edx, ecx
test edx, edx
mov dword [esp + 4], edx
mov dword [esp + 0x14], esi
mov dword [esp + 0x40], ecx
je 0x10d3460
mov eax, ebx
and eax, 3
je 0x10d3460
mov esi, ebx
mov edi, ebx
not edi
and edi, 3
lea ebx, [edx - 1]
cmp edi, ebx
jb 0x10d341e
mov edi, ebx
lea eax, [edi + 1]
push eax
push 0x20
push esi
call fcn.010dc8a0
add esp, 0xc
lea ecx, [edi + esi]
inc ecx
sub ebx, edi
mov esi, dword [esp + 0x14]
cmp ebx, 4
jge 0x10d3469
test ebx, ebx
je 0x10d34a4
push ebx
push 0x20
mov edi, esi
mov esi, ecx
push ecx
call fcn.010dc8a0
add esp, 0xc
add esi, ebx
mov ebx, esi
mov esi, edi
jmp 0x10d34a6
mov ecx, ebx
mov ebx, edx
cmp ebx, 4
jl 0x10d343c
mov eax, ebx
cmp ebx, 7
jl 0x10d3475
mov eax, 7
neg eax
lea edi, [ebx + eax]
add edi, 3
and edi, 0xfffffffc
lea eax, [edi + 4]
push eax
push 0x20
mov esi, ecx
push ecx
call fcn.010dc8a0
add esp, 0xc
lea ecx, [edi + esi]
add ecx, 4
sub ebx, edi
add ebx, 0xfffffffc
mov esi, dword [esp + 0x14]
test ebx, ebx
jne 0x10d3440
mov ebx, ecx
mov eax, dword [esp + 0x48]
mov edx, dword [esp + 4]
cmp dword [ebp + 8], 0
mov ecx, dword [esp + 0x40]
je 0x10d33d4
mov eax, ebx
sub eax, esi
cmp eax, 0x1ff
jl 0x10d33d0
mov edx, esi
mov esi, ecx
add dword [esp + 0x44], eax
push eax
push dword [ebp + 0xc]
push edx
call dword [ebp + 8]
add esp, 0xc
test eax, eax
je 0x10d354c
mov ebx, eax
mov edx, eax
mov eax, dword [esp + 0x48]
mov ecx, esi
mov esi, ebx
mov edx, dword [esp + 4]
jmp 0x10d33d4
lea eax, [esp + 0x2d]
mov dword [esp + 0x10], eax
mov edx, dword [esp]
jmp 0x10d2f26
mov eax, dword [esp + 0x48]
inc eax
jmp 0x10d103f
mov ecx, edi
jmp 0x10d28a2
fstp st(1)
fdivp st(1)
mov ecx, edx
or ecx, 0x4000000
jmp 0x10d1eb1
mov ecx, dword [ebp + 8]
test ecx, ecx
je 0x10d3552
mov eax, ebx
sub eax, esi
test eax, eax
jle 0x10d3555
add dword [esp + 0x44], eax
push eax
push dword [ebp + 0xc]
push esi
call ecx
add esp, 0xc
mov ebx, eax
mov esi, eax
jmp 0x10d3555
xor ebx, ebx
xor esi, esi
jmp 0x10d3555
mov byte [ebx], 0
mov eax, dword [esp + 0x44]
add eax, ebx
sub eax, esi
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret