Function at 0x30d1000
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 + 0x4c], 0
mov edi, ebx
jmp 0x30d1043
mov ebx, eax
mov eax, dword [esp + 0x28]
movzx eax, byte [eax]
mov edi, ebx
mov byte [ebx], al
mov eax, dword [esp + 0x28]
inc eax
inc ebx
mov dword [esp + 0x18], edi
test al, 3
mov dword [esp + 0x28], eax
je 0x30d1060
movzx eax, byte [eax]
jmp 0x30d1110
mov eax, dword [eax]
mov ecx, eax
xor ecx, 0xdadadada
add ecx, 0x1010101
or ecx, eax
not ecx
test ecx, 0x80808080
jne 0x30d1110
lea ecx, [ebx + ebx]
mov esi, dword [esp + 0x18]
sub ecx, esi
sub ecx, esi
mov edx, ebx
sub edx, esi
jmp 0x30d10d5
mov ebx, edi
mov dword [edi], eax
add ebx, 4
mov esi, dword [esp + 0x28]
mov eax, dword [esi + 4]
add esi, 4
mov dword [esp + 0x28], esi
mov esi, eax
xor esi, 0xdadadada
add esi, 0x1010101
or esi, eax
not esi
add ecx, 8
add edx, 4
test esi, 0x80808080
jne 0x30d1110
mov edi, ebx
mov esi, eax
not esi
lea ebx, [eax - 0x1010101]
and ebx, esi
test ebx, 0x80808080
jne 0x30d1156
cmp dword [ebp + 8], 0
je 0x30d10a0
mov esi, edx
xor esi, 0x200
mov ebx, ecx
not ebx
and ebx, 0x400
sub ebx, esi
cmp ebx, 4
jge 0x30d10a0
mov ebx, edi
nop
nop
nop
nop
cmp al, 0x25
je 0x30d115a
test al, al
mov edi, dword [esp + 0x18]
je 0x30d3658
cmp dword [ebp + 8], 0
je 0x30d103b
mov ecx, ebx
sub ecx, edi
cmp ecx, 0x1ff
jl 0x30d103b
add dword [esp + 0x4c], ecx
push ecx
push dword [ebp + 0xc]
push edi
call dword [ebp + 8]
add esp, 0xc
test eax, eax
jne 0x30d1030
jmp 0x30d367b
mov ebx, edi
jmp 0x30d1114
mov ecx, dword [esp + 0x28]
add ecx, 2
xor esi, esi
jmp 0x30d1170
or esi, 1
inc ecx
nop
nop
nop
nop
nop
nop
nop
movzx eax, byte [ecx - 1]
lea edx, [eax - 0x20]
cmp edx, 0x3f
ja case.0x30d117c.33
jmp dword [edx*4 + 0x311b564]
or esi, 4
inc ecx
jmp 0x30d1170
or esi, 8
inc ecx
jmp 0x30d1170
or esi, 0x400
inc ecx
jmp 0x30d1170
or esi, 0x40
inc ecx
jmp 0x30d1170
test esi, 0x100
jne 0x30d11c2
or esi, 0x100
inc ecx
jmp 0x30d1170
mov edx, esi
mov eax, esi
xor eax, 2
add eax, esi
and edx, 0xfffffffd
sub eax, edx
inc ecx
mov esi, eax
jmp 0x30d1170
test esi, 0x800
jne 0x30d11d3
or esi, 0x800
inc ecx
jmp 0x30d1170
or esi, 0x1000
inc ecx
jmp 0x30d1170
mov edx, esi
or edx, 0x10
movzx eax, byte [ecx]
jmp 0x30d11e9
dec ecx
mov edx, esi
cmp al, 0x2a
mov edi, dword [esp + 0x18]
jne 0x30d1205
mov eax, dword [esp + 0x20]
mov esi, dword [eax]
add eax, 4
mov dword [esp + 0x20], eax
movzx eax, byte [ecx + 1]
inc ecx
jmp 0x30d1241
mov edi, edx
mov edx, eax
add dl, 0xd0
xor esi, esi
cmp dl, 9
ja 0x30d123b
xor esi, esi
nop
nop
nop
nop
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 0x30d1220
mov edx, edi
mov edi, dword [esp + 0x18]
mov dword [esp + 0x14], 0xffffffff
cmp al, 0x2e
mov dword [esp + 0x30], esi
jne 0x30d12e6
movzx eax, byte [ecx + 1]
cmp al, 0x2a
jne 0x30d127b
mov eax, dword [esp + 0x20]
mov edi, dword [eax]
mov dword [esp + 0x14], edi
mov edi, dword [esp + 0x18]
add eax, 4
mov dword [esp + 0x20], eax
movzx eax, byte [ecx + 2]
add ecx, 2
jmp 0x30d12e6
mov dword [esp + 8], edx
inc ecx
mov edx, eax
add dl, 0xd0
mov dword [esp + 0x14], 0
cmp dl, 9
ja 0x30d12de
xor esi, esi
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov edi, esi
and edi, 0xa
mov edx, esi
or esi, 0xa
imul esi, edi
xor edi, 0xa
and edx, 0xfffffff5
imul edx, edi
movzx eax, al
add eax, esi
add eax, edx
mov edx, eax
not edx
and edx, 0x30
and eax, 0xffffffcf
mov esi, eax
sub esi, edx
movzx eax, byte [ecx + 1]
inc ecx
mov edx, eax
add dl, 0xd0
cmp dl, 0xa
jb 0x30d12a0
mov dword [esp + 0x14], esi
mov edx, dword [esp + 8]
mov edi, dword [esp + 0x18]
movzx eax, al
add eax, 0xffffffb7
cmp eax, 0x31
ja case.0x30d12f1.74
jmp dword [eax*4 + 0x311b664]
inc ecx
movzx eax, byte [ecx]
mov dword [esp + 0x28], ecx
mov dword [esp + 4], eax
movzx eax, al
add eax, 0xffffffbf
cmp eax, 0x37
ja case.0x30d1317.67
mov dword [esp + 0x2c], ebx
jmp dword [eax*4 + 0x311b72c]
test dl, 0x20
jne 0x30d1756
mov eax, dword [esp + 0x20]
mov ecx, dword [eax]
add eax, 4
mov dword [esp + 0x20], eax
cmp byte [esp + 4], 0x75
je 0x30d1cd3
test ecx, ecx
jns 0x30d1cd3
neg ecx
mov eax, ecx
or edx, 0x80
jmp 0x30d1cd5
movzx eax, byte [ecx + 1]
cmp al, 0x6c
jne 0x30d13b2
or edx, 0x20
add ecx, 2
jmp case.0x30d12f1.74
lea eax, [ecx + 1]
mov dword [esp + 0x28], eax
movzx eax, byte [ecx + 1]
cmp eax, 0x33
je 0x30d1b4a
mov dword [esp + 4], eax
cmp eax, 0x36
jne 0x30d1b5d
cmp byte [ecx + 2], 0x34
jne 0x30d1b54
add ecx, 3
or edx, 0x20
jmp case.0x30d12f1.74
or edx, 0x200
movzx eax, byte [ecx + 1]
cmp al, 0x68
jne 0x30d13b2
add ecx, 2
jmp case.0x30d12f1.74
inc ecx
jmp 0x30d12fc
mov eax, str.0123456789ABCDEFXP
cmp byte [esp + 4], 0x45
je 0x30d13c9
mov eax, str.0123456789abcdefxp
mov dword [esp + 4], eax
mov esi, edx
mov eax, dword [esp + 0x20]
fld qword [eax]
mov ecx, 6
mov eax, dword [esp + 0x14]
cmp eax, 0xffffffff
je 0x30d13e5
mov ecx, eax
mov edi, ecx
mov eax, ecx
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.030d36a0
add esp, 0x18
mov edx, esi
test eax, eax
je 0x30d1424
or edx, 0x80
add dword [esp + 0x20], 8
mov esi, edi
mov byte [esp + 0x34], 0
mov byte [esp + 0x40], 0
mov al, 0x2d
test dl, dl
js 0x30d1449
mov al, 0x20
test dl, 4
jne 0x30d1449
mov al, 0x2b
test dl, 2
je 0x30d1452
mov byte [esp + 0x40], 1
mov byte [esp + 0x41], al
mov eax, dword [esp + 0x3c]
mov edi, dword [esp + 0x10]
cmp eax, 0x7000
jne 0x30d1635
mov dword [esp + 0xc], 0
mov dword [esp + 4], edi
jmp 0x30d2a04
mov edi, str.0123456789ABCDEFXP
cmp byte [esp + 4], 0x41
je 0x30d1487
mov edi, str.0123456789abcdefxp
mov dword [esp + 0xc], 6
mov eax, dword [esp + 0x14]
cmp eax, 0xffffffff
je 0x30d149c
mov dword [esp + 0xc], eax
mov eax, dword [esp + 0x20]
mov ecx, dword [eax + 4]
test ecx, ecx
jns 0x30d14ad
or edx, 0x80
mov eax, dword [esp + 0x20]
mov ebx, dword [eax]
mov al, 0x2d
test dl, dl
js 0x30d15e8
mov al, 0x20
test dl, 4
jne 0x30d15e8
mov al, 0x2b
test dl, 2
jne 0x30d15e8
mov dword [esp], 0
jmp 0x30d15f1
mov dword [esp], str.0123456789ABCDEFXP
mov eax, dword [esp + 4]
cmp al, 0x42
je 0x30d14f5
mov dword [esp], str.0123456789abcdefxp
mov byte [esp + 0x40], 0
test dl, 8
je 0x30d1514
cmp al, 0x42
setne al
mov word [esp + 0x40], 0x3002
shl al, 5
or al, 0x42
mov byte [esp + 0x42], al
mov dword [esp + 0x1c], 0x180
mov ecx, 1
jmp 0x30d1827
mov eax, str.0123456789ABCDEFXP
cmp byte [esp + 4], 0x47
je 0x30d1537
mov eax, str.0123456789abcdefxp
mov dword [esp + 4], eax
mov edi, edx
mov eax, dword [esp + 0x20]
fld qword [eax]
mov ecx, dword [esp + 0x14]
cmp ecx, 1
mov eax, ecx
adc eax, 0
mov esi, 6
cmp ecx, 0xffffffff
je 0x30d155b
mov esi, eax
lea eax, [esi - 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.030d36a0
add esp, 0x18
test eax, eax
je 0x30d1597
or edi, 0x80
mov ecx, dword [esp + 0x1c]
cmp ecx, esi
jb 0x30d15a1
mov ecx, esi
mov dword [esp + 8], edi
mov eax, ecx
cmp ecx, 2
mov dword [esp], esi
jb 0x30d179f
mov edx, dword [esp + 0x10]
mov ecx, esi
nop
nop
nop
nop
nop
nop
nop
cmp byte [edx + eax - 1], 0x30
jne 0x30d2091
mov esi, eax
lea edi, [ecx - 1]
dec esi
mov eax, esi
cmp esi, 2
jb 0x30d2093
cmp ecx, 1
mov ecx, edi
jne 0x30d15c0
jmp 0x30d2093
mov byte [esp + 0x41], al
mov al, 1
mov dword [esp], eax
mov esi, ecx
and esi, 0xfffff
shr ecx, 0x14
and ecx, 0x7ff
mov dword [esp + 0x14], edi
mov dword [esp + 8], edx
je 0x30d1b8e
add ecx, 0xfffffc01
mov dword [esp + 0x48], ecx
mov eax, 0xffffffff
mov edi, ebx
add edi, eax
mov eax, 0xfffff
adc esi, eax
add edi, 1
adc esi, 0
jmp 0x30d1ba5
mov dword [esp + 0xc], eax
mov dword [esp + 8], edx
movzx ecx, byte [edi]
mov byte [esp + 0x9c], cl
lea eax, [esp + 0x9d]
mov dword [esp], eax
test esi, esi
je 0x30d1679
movzx ecx, byte [section..data]
mov edx, ecx
add dl, cl
and dl, 0xb4
sub cl, dl
add cl, 0x5a
mov byte [esp + 0x9d], cl
lea eax, [esp + 0x9e]
mov dword [esp], eax
mov eax, dword [esp + 0x1c]
lea edx, [eax - 1]
cmp edx, esi
jbe 0x30d168b
lea eax, [esi + 1]
mov dword [esp + 0x1c], eax
mov dword [esp + 0x24], eax
cmp eax, 2
mov dword [esp + 0x14], esi
jb 0x30d1731
mov ecx, esi
cmp esi, edx
jb 0x30d16a4
mov ecx, edx
lea esi, [ecx - 1]
mov edx, 1
cmp esi, 7
jb 0x30d1714
mov esi, ecx
and esi, 0xfffffff8
xor edx, edx
mov ebx, dword [esp]
nop
nop
nop
nop
nop
movzx eax, byte [edi + edx + 1]
mov byte [ebx + edx], al
movzx eax, byte [edi + edx + 2]
mov byte [ebx + edx + 1], al
movzx eax, byte [edi + edx + 3]
mov byte [ebx + edx + 2], al
movzx eax, byte [edi + edx + 4]
mov byte [ebx + edx + 3], al
movzx eax, byte [edi + edx + 5]
mov byte [ebx + edx + 4], al
movzx eax, byte [edi + edx + 6]
mov byte [ebx + edx + 5], al
movzx eax, byte [edi + edx + 7]
mov byte [ebx + edx + 6], al
movzx eax, byte [edi + edx + 8]
mov byte [ebx + edx + 7], al
add edx, 8
cmp esi, edx
jne 0x30d16c0
add ebx, edx
mov dword [esp], ebx
inc edx
and ecx, 7
je 0x30d1731
add edi, edx
xor edx, edx
mov esi, dword [esp]
movzx eax, byte [edi + edx]
mov byte [esi + edx], al
inc edx
cmp ecx, edx
jne 0x30d1720
add esi, edx
mov dword [esp], esi
mov eax, dword [esp + 4]
movzx eax, byte [eax + 0xe]
mov byte [esp + 0x35], al
mov eax, dword [esp + 0xc]
test eax, eax
jle 0x30d1fbc
dec eax
mov byte [esp + 0x36], 0x2b
mov esi, eax
jmp 0x30d1fc8
mov ecx, dword [esp + 0x20]
lea esi, [ecx + 8]
mov eax, dword [ecx]
mov ecx, dword [ecx + 4]
cmp byte [esp + 4], 0x75
je 0x30d1f2c
test ecx, ecx
jns 0x30d1f2c
neg eax
mov dword [esp + 0xc], ecx
mov ecx, 0
sbb ecx, dword [esp + 0xc]
or edx, 0xa0
mov dword [esp + 0x20], esi
test edx, 0x100
jne 0x30d1f3c
jmp 0x30d1ce3
mov edi, esi
jmp 0x30d2093
and edx, 0xffffffef
mov dword [esp + 0x14], 8
mov dword [esp], str.0123456789ABCDEFXP
cmp byte [esp + 4], 0x58
je 0x30d17c6
mov dword [esp], str.0123456789abcdefxp
mov dword [esp + 0x1c], 0x440
mov byte [esp + 0x40], 0
mov eax, edx
xor eax, 0xfffffff7
mov esi, edx
or edx, 8
mov ecx, 4
test edx, eax
je 0x30d17fe
cmp byte [esp + 4], 0x58
setne al
mov word [esp + 0x40], 0x3002
shl al, 5
or al, 0x58
mov byte [esp + 0x42], al
mov edx, esi
jmp 0x30d1827
mov byte [esp + 0x40], 0
test dl, 8
je 0x30d1813
mov word [esp + 0x40], 0x3001
mov dword [esp + 0x1c], 0x330
mov dword [esp], str.0123456789ABCDEFXP
mov ecx, 3
mov dword [esp + 8], edx
test dl, 0x20
jne 0x30d1841
mov edx, dword [esp + 0x20]
mov edi, dword [edx]
add edx, 4
mov dword [esp + 0x20], edx
xor esi, esi
jmp 0x30d1851
mov edx, dword [esp + 0x20]
mov edi, 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, edi
or edx, esi
jne 0x30d1874
mov byte [esp + 0x40], 0
cmp dword [esp + 0x14], 0
je 0x30d1b66
mov edx, 0xffffffff
shl edx, cl
not edx
and edx, edi
mov eax, dword [esp + 0x1c]
mov dword [esp + 0xc], eax
mov cl, ah
shrd edi, esi, cl
mov eax, dword [esp]
movzx ecx, byte [eax + edx]
mov byte [esp + 0x25b], cl
mov eax, dword [esp + 0xc]
mov cl, ah
shr esi, cl
test ah, 0x20
je 0x30d18ab
mov edi, esi
xor esi, esi
mov ecx, edi
or ecx, esi
jne 0x30d18cd
mov ecx, 1
cmp dword [esp + 0x14], 2
jge 0x30d18cd
lea eax, [esp + 0x25b]
mov dword [esp + 4], eax
jmp 0x30d198f
lea ecx, [esp + 0x25b]
mov dword [esp + 4], ecx
lea edx, [esp + 0x25c]
nop
test byte [esp + 8], 0x40
jne 0x30d18f0
mov edx, dword [esp + 4]
jmp 0x30d1930
mov ebx, dword [esp + 0xc]
inc ebx
mov dword [esp + 0x1c], ebx
mov ecx, ebx
shr ecx, 4
xor ecx, ebx
test cl, 0xf
mov ecx, dword [esp + 4]
je 0x30d1911
mov dword [esp + 0xc], ebx
mov edx, ecx
jmp 0x30d1930
and ebx, 0xfffffff0
mov dword [esp + 0x1c], ebx
movzx ecx, byte [0x311e001]
xor cl, 0x1f
mov byte [edx - 2], cl
add edx, 0xfffffffe
mov eax, dword [esp + 0x1c]
mov dword [esp + 0xc], eax
mov ebx, 0xffffffff
mov eax, dword [esp + 0xc]
mov cl, ah
shl ebx, cl
not ebx
and ebx, edi
mov eax, dword [esp + 0x1c]
mov cl, ah
shrd edi, esi, cl
mov ecx, dword [esp]
movzx ecx, byte [ecx + ebx]
mov byte [edx - 1], cl
mov cl, ah
shr esi, cl
mov dword [esp + 0xc], eax
test ah, 0x20
je 0x30d1965
mov edi, esi
xor esi, esi
mov ebx, dword [esp + 0x2c]
lea ecx, [edx - 1]
mov dword [esp + 4], ecx
mov ecx, edi
or ecx, esi
jne 0x30d18e0
lea ecx, [esp + 0x25c]
sub ecx, dword [esp + 4]
cmp ecx, dword [esp + 0x14]
jl 0x30d18e0
mov eax, dword [esp + 0xc]
shl eax, 0x14
and eax, 0xf000000
add eax, ecx
mov dword [esp + 0xc], eax
mov dword [esp + 0x1c], ecx
xor esi, esi
mov edx, dword [esp + 8]
mov edi, dword [esp + 0x14]
jmp 0x30d2a08
mov eax, dword [esp + 0x20]
mov eax, dword [eax]
mov dword [esp + 4], str.null
test eax, eax
je 0x30d19ca
mov dword [esp + 4], eax
mov eax, dword [esp + 0x14]
mov esi, eax
test eax, eax
jns 0x30d19d9
mov esi, 0xffffffff
mov ecx, dword [esp + 4]
test cl, 3
je 0x30d2982
lea edi, [esi + ecx]
test eax, eax
je 0x30d29dd
cmp byte [ecx], 0
je 0x30d2815
inc ecx
lea eax, [esi - 1]
test cl, 3
je 0x30d2980
test eax, eax
je 0x30d29dd
cmp byte [ecx], 0
je 0x30d2815
mov eax, dword [esp + 4]
lea ecx, [eax + 2]
lea eax, [esi - 2]
test cl, 3
je 0x30d2980
test eax, eax
je 0x30d29dd
cmp byte [ecx], 0
je 0x30d2815
mov eax, dword [esp + 4]
lea ecx, [eax + 3]
lea eax, [esi - 3]
test cl, 3
je 0x30d2980
test eax, eax
je 0x30d29dd
cmp byte [ecx], 0
je 0x30d2815
mov eax, dword [esp + 4]
lea ecx, [eax + 4]
add esi, 0xfffffffc
test cl, 3
je 0x30d2982
test esi, esi
je 0x30d1a79
mov edi, ecx
mov ebx, dword [esp + 0x2c]
jmp 0x30d29dd
mov eax, dword [esp + 4]
mov byte [esp + 0x25b], al
mov dword [esp + 0x1c], 1
mov byte [esp + 0x40], 0
mov byte [esp + 0x34], 0
mov dword [esp + 0x3c], 0
mov dword [esp + 0xc], 0
lea eax, [esp + 0x25b]
mov dword [esp + 4], eax
xor edx, edx
xor esi, esi
xor edi, edi
mov dword [esp + 0x30], 0
jmp 0x30d2a08
mov ecx, dword [esp + 0x20]
movzx eax, byte [ecx]
mov byte [esp + 0x25b], al
add ecx, 4
mov dword [esp + 0x20], ecx
mov dword [esp + 0x1c], 1
mov byte [esp + 0x40], 0
mov byte [esp + 0x34], 0
mov dword [esp + 0x3c], 0
mov dword [esp + 0xc], 0
lea eax, [esp + 0x25b]
jmp 0x30d23e4
mov eax, dword [esp + 0x20]
fld qword [eax]
add eax, 8
mov dword [esp + 0x20], eax
test edx, 0x100
jne 0x30d1f72
jmp 0x30d215d
mov edx, dword [esp + 0x20]
mov eax, dword [edx]
mov ecx, dword [esp + 0x4c]
sub ecx, edi
add ecx, ebx
mov dword [eax], ecx
add edx, 4
mov dword [esp + 0x20], edx
jmp 0x30d363f
cmp byte [ecx + 2], 0x32
je 0x30d21b0
mov ecx, dword [esp + 0x28]
jmp case.0x30d12f1.74
mov eax, dword [esp + 4]
jmp 0x30d1300
mov dword [esp + 0x1c], 0
mov dword [esp + 0xc], 0
lea eax, [esp + 0x25c]
mov dword [esp + 4], eax
xor esi, esi
xor edi, edi
mov edx, dword [esp + 8]
jmp 0x30d2a08
xor eax, eax
mov edi, ebx
mov ecx, ebx
or ecx, esi
je 0x30d1b9d
mov eax, 0xfffffc02
mov dword [esp + 0x48], eax
mov dword [esp + 0x3c], eax
mov eax, dword [esp + 0xc]
lea ecx, [eax*4]
xor ebx, ebx
mov eax, 0x8000000
shrd ebx, eax, cl
mov edx, 0x8000000
shr edx, cl
test cl, 0x20
je 0x30d1bca
mov ebx, edx
xor edx, edx
cmp dword [esp + 0xc], 0xf
jl 0x30d1bd5
xor ebx, ebx
xor edx, edx
shld esi, edi, 8
shl edi, 8
add edi, ebx
adc esi, edx
mov edx, dword [esp]
movzx ecx, dl
lea eax, [esp + 0x40]
mov word [ecx + eax + 1], 0x7830
or dl, 2
mov byte [esp + 0x40], dl
mov ecx, esi
shr ecx, 0x1c
mov eax, dword [esp + 0x14]
movzx ecx, byte [eax + ecx]
mov byte [esp + 0x9c], cl
mov edx, dword [esp + 0xc]
test edx, edx
je 0x30d1cb9
movzx ecx, byte [section..data]
xor cl, 0x5a
mov byte [esp + 0x9d], cl
lea eax, [esp + 0x9e]
mov dword [esp + 0x10], eax
mov ecx, edx
cmp edx, 0xd
mov ebx, dword [esp + 0x48]
jb 0x30d1c44
mov ecx, 0xd
mov eax, edx
sub eax, ecx
mov dword [esp + 0x24], eax
jg 0x30d1c56
mov dword [esp + 0x24], 0
mov dword [esp], ecx
mov edx, ecx
and edx, 3
je 0x30d21b8
xor ebx, ebx
mov ecx, edi
mov edi, dword [esp + 0x14]
nop
nop
nop
nop
mov eax, esi
shr eax, 0x18
and eax, 0xf
movzx eax, byte [edi + eax]
shld esi, ecx, 4
mov byte [esp + ebx + 0x9e], al
shl ecx, 4
inc ebx
cmp edx, ebx
jne 0x30d1c70
lea eax, [esp + 0x9e]
lea edx, [eax + ebx]
sub dword [esp], ebx
mov ebx, dword [esp + 0x48]
mov edi, ecx
cmp dword [esp + 0xc], 4
jae 0x30d21ca
lea edi, [esp + 0x9e]
jmp 0x30d222f
lea edx, [esp + 0x9d]
mov dword [esp + 0x10], edx
mov dword [esp + 0x24], 0
mov edi, edx
jmp 0x30d222b
mov eax, ecx
xor ecx, ecx
test edx, 0x100
jne 0x30d1f3c
movzx ebx, byte [0x311e001]
xor bl, 0x1f
mov byte [esp + 0x24], bl
mov esi, 0x200
mov dword [esp + 4], 0
mov dword [esp + 8], edx
mov ebx, eax
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
cmp ebx, 0x5f5e100
mov eax, ecx
sbb eax, 0
jb 0x30d1d50
push 0
push 0x5f5e100
push ecx
push ebx
call fcn.030dc5a0
mov dword [esp + 0xc], edx
mov edx, dword [esp + 8]
imul ecx, eax, 0x5f5e100
sub ebx, ecx
mov dword [esp + 0x48], eax
jmp 0x30d1d60
mov dword [esp + 0xc], 0
mov dword [esp + 0x48], 0
lea eax, [esp + 0x54]
add eax, esi
mov dword [esp], eax
test dl, 0x40
jne 0x30d1dc0
nop
nop
mov eax, ebx
mov ecx, 0x51eb851f
mul ecx
shr edx, 5
imul ecx, edx, 0x64
mov eax, ebx
sub eax, ecx
mov ecx, eax
and ecx, 0x7d
mov edi, eax
and edi, 2
or eax, 2
imul eax, edi
xor edi, 2
imul edi, ecx
movzx eax, word [edi + eax + str.00010203040506070809101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899]
mov word [esp + esi + 0x5a], ax
add esi, 0xfffffffe
cmp ebx, 0x64
mov ebx, edx
jae 0x30d1d70
mov edi, dword [esp + 0x18]
mov edx, dword [esp + 8]
mov eax, dword [esp + 4]
jmp 0x30d1e20
test ebx, ebx
mov eax, dword [esp + 4]
jne 0x30d1dff
jmp 0x30d1e20
inc eax
mov edi, eax
mov eax, ebx
mov ecx, 0xcccccccd
mul ecx
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
mov edx, dword [esp + 8]
mov eax, edi
mov edi, dword [esp + 0x18]
test ebx, ebx
je 0x30d1e20
test dl, 0x40
je 0x30d1dd1
cmp eax, 3
jne 0x30d1dd0
movzx eax, byte [esp + 0x24]
mov byte [esp + esi + 0x5b], al
dec esi
dec dword [esp]
xor eax, eax
test ebx, ebx
jne 0x30d1dff
nop
nop
nop
nop
mov dword [esp + 4], eax
mov ecx, edi
mov ebx, dword [esp + 0x48]
mov eax, ebx
or eax, dword [esp + 0xc]
lea edi, [esp + esi + 0x5c]
je 0x30d1e8f
cmp edi, dword [esp]
mov edi, ecx
mov ecx, dword [esp + 0xc]
jne 0x30d1e6a
jmp 0x30d1d10
inc eax
mov dword [esp + 4], eax
mov byte [esp + esi + 0x5b], 0x30
dec esi
lea eax, [esp + esi]
add eax, 0x5c
cmp eax, dword [esp]
je 0x30d1d10
test dl, 0x40
je 0x30d1e55
mov eax, dword [esp + 4]
cmp eax, 3
jne 0x30d1e50
movzx eax, byte [esp + 0x24]
mov byte [esp + esi + 0x5b], al
dec esi
dec dword [esp]
mov dword [esp + 4], 0
jmp 0x30d1e5b
cmp byte [esp + esi + 0x5c], 0x30
sete al
cmp esi, 0x200
setne ah
mov byte [esp + 0x34], 0
mov byte [esp + 0x40], 0
mov ebx, edx
mov dl, 0x2d
test bl, bl
mov ebx, dword [esp + 0x2c]
js 0x30d1ec8
mov dl, 0x20
test byte [esp + 8], 4
jne 0x30d1ec8
mov dl, 0x2b
test byte [esp + 8], 2
je 0x30d1ed1
mov byte [esp + 0x40], 1
mov byte [esp + 0x41], dl
and ah, al
movzx eax, ah
add edi, eax
lea eax, [esp + 0x25c]
mov dword [esp + 4], edi
sub eax, edi
mov ecx, eax
mov dword [esp + 0x1c], eax
jne 0x30d1f0d
mov byte [esp + 0x25b], 0x30
mov dword [esp + 0x1c], 1
mov ecx, 1
lea eax, [esp + 0x25b]
mov dword [esp + 4], eax
xor esi, esi
mov edi, dword [esp + 0x14]
test edi, edi
mov edx, dword [esp + 8]
jg 0x30d1f1d
xor edi, edi
add ecx, 0x3000000
mov dword [esp + 0xc], ecx
jmp 0x30d2a08
mov dword [esp + 0x20], esi
test edx, 0x100
je 0x30d1ce3
mov edi, ecx
mov esi, 1
mov ecx, dword [esp + 0x14]
cmp ecx, 0xffffffff
je 0x30d1f4e
mov esi, ecx
mov dword [esp + 0x14], 0
cmp eax, 0x400
mov ecx, edi
sbb ecx, 0
jb 0x30d1f66
mov dword [esp + 0x14], esi
mov dword [esp + 0x50], eax
mov dword [esp + 0x54], edi
fild qword [esp + 0x50]
xor eax, eax
test edx, 0x800
sete al
fld qword [eax*8 + 0x311b550]
cmp edx, 0x3ffffff
ja 0x30d1fb5
fld st(0)
fchs
fxch st(1)
fucom st(2)
fnstsw ax
sahf
jbe 0x30d20e3
fxch st(2)
fucom st(1)
fnstsw ax
sahf
fxch st(2)
jbe 0x30d20e3
fstp st(0)
fstp st(0)
jmp 0x30d215d
fstp st(0)
jmp 0x30d215d
mov byte [esp + 0x36], 0x2d
mov esi, 1
sub esi, eax
xor eax, eax
cmp esi, 0x64
setge al
mov edi, eax
mov eax, esi
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 ebx, esi
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, [edi + 4]
add bl, 0x30
add edx, edx
lea edx, [edx + edx*4]
mov dword [esp + 4], edx
mov dword [esp + 0xc], eax
mov byte [esp + 0x34], al
mov byte [esp + edi + 0x38], bl
mov edx, ecx
sub edx, dword [esp + 4]
add dl, 0x30
mov byte [esp + edi + 0x37], dl
cmp esi, 0x64
jl 0x30d2060
mov eax, esi
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 + 0xc]
mov byte [esi + eax - 2], dl
mov esi, dword [esp + 0x24]
lea eax, [esi - 1]
mov edx, dword [esp + 0x14]
xor eax, edx
neg esi
and esi, edx
add esi, esi
sub esi, eax
mov dword [esp + 0x3c], ecx
mov dword [esp + 0xc], 0x3000001
mov ebx, dword [esp + 0x2c]
mov edx, dword [esp + 8]
mov edi, dword [esp]
jmp 0x30d292a
mov edi, ecx
add dword [esp + 0x20], 8
mov dword [esp + 0x1c], eax
mov ecx, dword [esp + 0x3c]
cmp ecx, 0xfffffffd
mov edx, dword [esp + 8]
jl 0x30d20c7
cmp ecx, dword [esp]
jg 0x30d20c7
test ecx, ecx
jle 0x30d239b
mov esi, eax
sub esi, ecx
jg 0x30d23a5
xor esi, esi
jmp 0x30d23a5
cmp edi, eax
jle 0x30d20d3
dec eax
mov esi, eax
jmp 0x30d142b
xor esi, esi
sub edi, 1
jae 0x30d1429
jmp 0x30d142b
fdiv st(2), st(0)
lea ecx, [edx + 0x1000000]
cmp edx, 0x2ffffff
ja 0x30d2157
fucom st(2)
fnstsw ax
sahf
jbe 0x30d2105
fxch st(2)
fucom st(1)
fnstsw ax
sahf
fxch st(2)
ja 0x30d2157
fdiv st(2), st(0)
lea ecx, [edx + 0x2000000]
cmp edx, 0x1ffffff
ja 0x30d2157
fucom st(2)
fnstsw ax
sahf
jbe 0x30d2127
fxch st(2)
fucom st(1)
fnstsw ax
sahf
fxch st(2)
ja 0x30d2157
fdiv st(2), st(0)
lea ecx, [edx + 0x3000000]
cmp edx, 0xffffff
ja 0x30d2157
fucom st(2)
fnstsw ax
sahf
jbe 0x30d3649
fxch st(2)
fucom st(1)
fstp st(1)
fnstsw ax
sahf
fldz
fxch st(1)
fxch st(2)
jbe 0x30d3649
fstp st(0)
fstp st(0)
mov edx, ecx
mov esi, edx
mov ecx, 6
mov eax, dword [esp + 0x14]
cmp eax, 0xffffffff
je 0x30d216f
mov ecx, eax
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 edi, ecx
mov dword [esp + 0x10], ecx
lea ecx, [esp + 0x28]
lea edx, [esp + 0x34]
call fcn.030d36a0
add esp, 0x18
mov edx, esi
test eax, eax
je 0x30d23a3
or edx, 0x80
jmp 0x30d23a3
add ecx, 3
jmp case.0x30d12f1.74
lea edx, [esp + 0x9e]
cmp dword [esp + 0xc], 4
jb 0x30d1cad
mov ebx, esi
mov eax, dword [esp]
nop
mov dword [esp], eax
mov eax, esi
shr eax, 0x18
and eax, 0xf
mov ecx, dword [esp + 0x14]
movzx eax, byte [ecx + eax]
mov byte [edx], al
mov eax, esi
shr eax, 0x14
and eax, 0xf
movzx eax, byte [ecx + eax]
mov byte [edx + 1], al
mov eax, esi
shr eax, 0x10
and eax, 0xf
movzx eax, byte [ecx + eax]
mov byte [edx + 2], al
shld ebx, edi, 0x10
shl edi, 0x10
shr esi, 0xc
and esi, 0xf
movzx eax, byte [ecx + esi]
mov byte [edx + 3], al
mov eax, dword [esp]
add edx, 4
mov esi, ebx
add eax, 0xfffffffc
jne 0x30d21d0
lea edi, [esp + 0x9e]
mov ebx, dword [esp + 0x48]
mov eax, dword [esp + 4]
cmp al, 0x41
setne al
shl al, 5
or al, 0x50
mov byte [esp + 0x35], al
test ebx, ebx
js 0x30d224c
mov byte [esp + 0x36], 0x2b
jmp 0x30d2253
mov byte [esp + 0x36], 0x2d
neg ebx
cmp ebx, 0x3e7
mov dword [esp + 4], edx
ja 0x30d2275
cmp ebx, 0x63
jbe 0x30d237c
mov dword [esp + 0x14], edi
mov dword [esp], 5
jmp 0x30d2280
mov dword [esp + 0x14], edi
mov dword [esp], 6
mov dword [esp + 0xc], 0
mov eax, ebx
mov ecx, 0xcccccccd
mul ecx
shr edx, 2
and edx, 0xfffffffe
mov esi, ebx
lea ebx, [edx + edx*4]
mov eax, esi
mov edi, 0x66666667
imul edi
mov ecx, edx
mov eax, edx
shr eax, 0x1f
sar ecx, 2
add ecx, eax
mov eax, ecx
imul edi
mov eax, esi
sub eax, ebx
mov ebx, dword [esp]
mov byte [esp + 0x34], bl
or al, 0x30
mov byte [esp + ebx + 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
add cl, 0x30
mov byte [esp + ebx + 0x33], cl
cmp byte [esp + 0xc], 0
mov ebx, dword [esp + 0x2c]
mov edi, dword [esp + 0x14]
jne 0x30d27d8
mov eax, esi
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
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
lea eax, [esp + 0x34]
mov edx, dword [esp]
mov byte [edx + eax - 2], cl
cmp esi, 0x3e8
jb 0x30d27d8
mov eax, esi
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, edx
shr eax, 0x1f
shr edx, 2
add edx, eax
add edx, edx
lea eax, [edx + edx*4]
sub ecx, eax
add cl, 0x30
lea eax, [esp + 0x34]
mov edx, dword [esp]
mov byte [edx + eax - 3], cl
jmp 0x30d27d8
cmp ebx, 9
jbe 0x30d27c8
mov dword [esp + 0x14], edi
mov dword [esp], 4
mov al, 1
mov dword [esp + 0xc], eax
jmp 0x30d2288
cmp edi, eax
jl 0x30d23a1
mov edi, eax
sub edi, ecx
mov esi, edi
mov byte [esp + 0x34], 0
mov byte [esp + 0x40], 0
mov al, 0x2d
test dl, dl
js 0x30d23c3
mov al, 0x20
test dl, 4
jne 0x30d23c3
mov al, 0x2b
test dl, 2
je 0x30d23cc
mov byte [esp + 0x40], 1
mov byte [esp + 0x41], al
mov ecx, dword [esp + 0x3c]
cmp ecx, 0x7000
jne 0x30d23ed
mov dword [esp + 0xc], 0
mov eax, dword [esp + 0x10]
mov dword [esp + 4], eax
jmp 0x30d2a04
test ecx, ecx
mov dword [esp + 8], edx
mov dword [esp + 0x24], esi
jle 0x30d249d
xor edi, edi
test dl, 0x40
je 0x30d241f
mov edi, 0x258
sub edi, ecx
mov eax, edi
mov edx, 0xaaaaaaab
mul edx
shr edx, 1
lea eax, [edx + edx*2]
mov edx, dword [esp + 8]
sub edi, eax
mov dword [esp], edi
cmp ecx, dword [esp + 0x1c]
jae 0x30d2517
xor eax, eax
lea ecx, [esp + 0x9c]
mov dword [esp + 0xc], ecx
jmp 0x30d2462
mov edx, dword [esp + 0xc]
mov ecx, dword [esp + 0x10]
movzx ecx, byte [ecx + eax]
lea edi, [edx + 1]
mov dword [esp + 0xc], edi
mov byte [edx], cl
inc eax
mov ecx, dword [esp + 0x3c]
cmp eax, ecx
jae 0x30d256f
mov edx, dword [esp + 8]
test dl, 0x40
je 0x30d2440
mov edi, dword [esp]
mov ecx, edi
and ecx, 1
xor edi, 1
lea edi, [edi + ecx*2]
mov dword [esp], edi
cmp edi, 4
jne 0x30d2440
and edx, 0x40
shr edx, 6
mov dword [esp], edx
movzx ecx, byte [0x311e001]
xor cl, 0x1f
mov edx, dword [esp + 0xc]
mov byte [edx], cl
inc edx
jmp 0x30d2444
mov byte [esp + 0x9c], 0x30
lea edi, [esp + 0x9d]
test esi, esi
je 0x30d24c7
movzx eax, byte [section..data]
xor al, 0x5a
mov byte [esp + 0x9d], al
lea edi, [esp + 0x9e]
neg ecx
mov edx, esi
cmp esi, ecx
jl 0x30d24d1
mov edx, ecx
test edx, edx
mov dword [esp], edx
je 0x30d26a1
mov eax, edi
and eax, 3
je 0x30d26a1
mov esi, edi
not esi
and esi, 3
lea ebx, [edx - 1]
cmp esi, ebx
jb 0x30d24f7
mov esi, ebx
lea eax, [esi + 1]
push eax
push 0x30
push edi
call fcn.030dc690
add esp, 0xc
add edi, esi
inc edi
sub ebx, esi
mov esi, dword [esp + 0x24]
mov edx, dword [esp]
jmp 0x30d26a3
xor ebx, ebx
mov esi, 0xffffffff
lea edi, [esp + 0x9c]
jmp 0x30d255c
mov eax, edx
and eax, 0x40
shr eax, 6
mov dword [esp], eax
movzx eax, byte [0x311e001]
mov ecx, eax
add cl, al
and cl, 0x3e
sub al, cl
add al, 0x1f
mov byte [edi], al
inc edi
mov ecx, edi
mov eax, dword [esp + 0x10]
movzx eax, byte [eax + ebx]
inc edi
mov byte [ecx], al
inc ebx
dec esi
cmp ebx, dword [esp + 0x1c]
jae 0x30d25da
test dl, 0x40
je 0x30d2547
mov eax, dword [esp]
inc eax
cmp eax, 4
je 0x30d2527
mov dword [esp], eax
jmp 0x30d2547
mov edi, dword [esp + 0xc]
test esi, esi
je 0x30d258d
movzx ecx, byte [section..data]
xor cl, 0x5a
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 + 0x24]
mov esi, dword [esp + 0x24]
jbe 0x30d25a6
lea edx, [ecx + esi]
mov dword [esp + 0x1c], edx
cmp eax, edx
jae 0x30d2758
nop
nop
mov ecx, dword [esp + 0x10]
movzx ecx, byte [ecx + eax]
mov byte [edi], cl
inc edi
mov ecx, eax
and ecx, 1
xor eax, 1
lea eax, [eax + ecx*2]
mov edx, dword [esp + 0x1c]
cmp eax, edx
jb 0x30d25b0
mov dword [esp], edi
mov ecx, dword [esp + 0x3c]
jmp 0x30d275b
mov dword [esp + 0x14], ecx
mov ecx, dword [esp + 0x3c]
mov eax, ecx
mov dword [esp + 4], ecx
sub ecx, ebx
mov eax, dword [esp]
jbe 0x30d277f
test dl, 0x40
jne 0x30d2940
cmp dword [esp + 4], ebx
je 0x30d2669
mov eax, edi
and eax, 3
je 0x30d2666
mov ecx, 2
sub ecx, dword [esp + 0x14]
and ecx, 3
not ebx
mov eax, dword [esp + 4]
add eax, ebx
mov edx, ecx
mov dword [esp + 0xc], ecx
cmp ecx, eax
jb 0x30d2629
mov edx, eax
mov dword [esp + 0x48], edx
lea eax, [edx + 1]
push eax
push 0x30
push edi
call fcn.030dc690
add esp, 0xc
add esi, dword [esp + 4]
mov eax, dword [esp + 0xc]
cmp esi, eax
jb 0x30d264a
mov esi, eax
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x48]
lea edi, [eax + ecx]
add edi, 2
mov eax, dword [esp + 4]
sub eax, esi
add ebx, eax
mov ecx, ebx
mov edx, dword [esp + 8]
mov eax, dword [esp]
cmp ecx, 4
mov ebx, dword [esp + 0x2c]
jb 0x30d2944
mov esi, ecx
and esi, 0xfffffffc
push esi
push 0x30
push edi
mov dword [esp + 0x10], ecx
call fcn.030dc690
mov ecx, dword [esp + 0x10]
mov eax, dword [esp + 0xc]
mov edx, dword [esp + 0x14]
add esp, 0xc
add edi, esi
and ecx, 3
jmp 0x30d2944
mov ebx, edx
cmp ebx, 4
jl 0x30d26df
mov eax, ebx
cmp ebx, 7
jl 0x30d26b4
mov eax, 7
neg eax
lea esi, [ebx + eax]
add esi, 3
and esi, 0xfffffffc
lea eax, [esi + 4]
push eax
push 0x30
push edi
call fcn.030dc690
add esp, 0xc
add edi, esi
add edi, 4
sub ebx, esi
add ebx, 0xfffffffc
mov esi, dword [esp + 0x24]
mov edx, dword [esp]
test ebx, ebx
je 0x30d26f5
push ebx
push 0x30
push edi
call fcn.030dc690
mov edx, dword [esp + 0xc]
add esp, 0xc
add edi, ebx
mov ebx, dword [esp + 0x2c]
mov eax, dword [esp + 0x1c]
lea ecx, [eax + edx]
cmp ecx, esi
jle 0x30d270c
mov eax, esi
sub eax, edx
mov dword [esp + 0x1c], eax
test eax, eax
je 0x30d2872
mov dword [esp + 4], esi
cmp esi, ecx
jl 0x30d2720
mov dword [esp + 4], ecx
mov ecx, eax
and ecx, 3
je 0x30d281c
xor esi, esi
nop
nop
nop
mov ebx, dword [esp + 0x10]
lea edx, [ebx + 1]
mov dword [esp + 0x10], edx
movzx edx, byte [ebx]
mov byte [edi + esi], dl
inc esi
cmp ecx, esi
jne 0x30d2730
add edi, esi
mov ecx, eax
sub ecx, esi
mov ebx, dword [esp + 0x2c]
mov edx, dword [esp]
jmp 0x30d281e
mov dword [esp], edi
lea eax, [esp + 0x9c]
mov edi, dword [esp + 0xc]
sub edi, eax
mov eax, edi
add eax, 0x3000000
sub esi, edx
add esi, ecx
mov edx, dword [esp + 8]
mov edi, dword [esp]
jmp 0x30d2886
mov ebx, dword [esp + 0x2c]
mov esi, dword [esp + 0x24]
mov eax, edi
lea ecx, [esp + 0x9c]
sub eax, ecx
mov ecx, eax
and ecx, 0x3000000
xor eax, 0x3000000
lea eax, [eax + ecx*2]
test esi, esi
je 0x30d2811
mov dword [esp + 0xc], eax
movzx eax, byte [section..data]
mov ecx, eax
add cl, al
and cl, 0xb4
sub al, cl
add al, 0x5a
mov byte [edi], al
mov eax, dword [esp + 0xc]
inc edi
jmp 0x30d2886
mov byte [esp + 0x34], 3
or bl, 0x30
mov byte [esp + 0x37], bl
mov ebx, dword [esp + 0x2c]
add dword [esp + 0x20], 8
mov ecx, dword [esp + 4]
mov eax, ecx
sub eax, edi
mov dword [esp + 0x3c], eax
lea eax, [esp + 0x9c]
sub ecx, eax
mov dword [esp + 0x1c], ecx
mov dword [esp + 0xc], 0x3000001
mov dword [esp + 4], eax
xor edi, edi
mov edx, dword [esp + 8]
mov esi, dword [esp + 0x24]
jmp 0x30d2a08
xor esi, esi
jmp 0x30d2886
mov edi, ecx
jmp 0x30d29dd
mov ecx, eax
sub edx, dword [esp + 4]
cmp edx, 0xfffffffc
ja 0x30d2872
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 0x30d2827
mov ecx, dword [esp]
add ecx, eax
mov esi, dword [esp + 0x24]
sub esi, ecx
mov eax, 0x3000001
mov edx, dword [esp + 8]
mov dword [esp + 0xc], eax
test edx, 0x100
je 0x30d292a
mov eax, edx
and eax, 0x400
sete byte [esp + 0x34]
mov byte [esp + 0x35], 0x20
cmp edx, 0x1000000
jb 0x30d292a
mov ecx, edx
shr ecx, 0x18
test edx, 0x800
jne 0x30d28de
movzx ecx, byte [ecx + str._kMGT]
mov edx, eax
shr edx, 0xa
neg edx
mov byte [esp + edx + 0x36], cl
mov edx, dword [esp + 8]
cmp eax, 1
mov eax, 0
adc al, 1
jmp 0x30d2926
mov dword [esp + 0x24], esi
movzx ecx, byte [ecx + str._KMGT]
mov edx, dword [esp + 8]
shl edx, 0x15
sar edx, 0x1f
cmp eax, 1
mov eax, 0
adc al, 1
lea esi, [esp + 0x34]
mov byte [edx + esi + 2], cl
mov edx, dword [esp + 8]
mov ecx, edx
and ecx, 0x1800
cmp ecx, 0x800
jne 0x30d2922
movzx eax, al
mov byte [esp + eax + 0x35], 0x69
inc eax
mov esi, dword [esp + 0x24]
mov byte [esp + 0x34], al
lea eax, [esp + 0x9c]
sub edi, eax
mov dword [esp + 0x1c], edi
mov dword [esp + 4], eax
jmp 0x30d2a06
mov ebx, dword [esp + 0x2c]
mov esi, dword [esp + 0x24]
test ecx, ecx
jne 0x30d295e
jmp 0x30d2787
mov byte [edi], 0x30
dec ecx
inc edi
test ecx, ecx
je 0x30d2787
test dl, 0x40
je 0x30d2951
inc eax
cmp eax, 4
jne 0x30d2951
movzx eax, byte [0x311e001]
xor al, 0x1f
mov byte [edi], al
xor eax, eax
inc edi
test ecx, ecx
jne 0x30d295e
jmp 0x30d2787
mov esi, eax
mov dword [esp + 0x14], esi
mov dword [esp], ecx
mov eax, ecx
mov dword [esp + 8], edx
nop
mov edi, eax
mov ecx, esi
cmp esi, 4
jb 0x30d29bb
mov edx, dword [edi]
mov eax, edx
not eax
add edx, 0xfefefeff
and edx, eax
lea eax, [edi + 4]
lea esi, [ecx - 4]
test edx, 0x80808080
mov edx, dword [esp + 8]
je 0x30d2990
jmp 0x30d29bf
test ecx, ecx
je 0x30d29dd
mov eax, edx
mov esi, dword [esp]
add esi, dword [esp + 0x14]
xor edx, edx
cmp byte [edi + edx], 0
je 0x30d29d9
inc edx
cmp ecx, edx
jne 0x30d29ca
mov edi, esi
jmp 0x30d29db
add edi, edx
mov edx, eax
add dword [esp + 0x20], 4
sub edi, dword [esp + 4]
mov dword [esp + 0x1c], edi
mov byte [esp + 0x40], 0
mov byte [esp + 0x34], 0
mov dword [esp + 0x3c], 0
mov dword [esp + 0xc], 0
xor esi, esi
xor edi, edi
mov dword [esp + 8], edx
mov dword [esp + 0x24], esi
mov ecx, dword [esp + 0x1c]
cmp edi, ecx
jg 0x30d2a1a
mov edi, ecx
movsx eax, byte [esp + 0x40]
movsx esi, byte [esp + 0x34]
mov edx, dword [esp + 0x24]
mov dword [esp + 0x14], edi
add edx, edi
add edx, eax
add edx, esi
mov esi, dword [esp + 0x30]
cmp esi, edx
jg 0x30d2a3c
mov esi, edx
sub esi, edx
sub dword [esp + 0x14], ecx
mov edx, dword [esp + 8]
test dl, 1
jne 0x30d2a58
test dl, 0x10
mov edi, dword [esp + 0x18]
jne 0x30d2a5e
xor edx, edx
jmp 0x30d2a6e
mov edi, dword [esp + 0x18]
jmp 0x30d2a6e
mov ecx, dword [esp + 0x14]
cmp esi, ecx
jg 0x30d2a68
mov esi, ecx
mov dword [esp + 0x14], esi
xor esi, esi
mov ecx, esi
add ecx, dword [esp + 0x14]
mov dword [esp + 8], edx
je 0x30d2f1f
test dl, 1
jne 0x30d2bc4
test esi, esi
jg 0x30d2aa5
jmp 0x30d2bc4
mov ebx, eax
mov edi, eax
mov edx, dword [esp + 8]
mov ecx, dword [esp]
sub esi, ecx
test esi, esi
jle 0x30d2bbf
mov ecx, esi
cmp dword [ebp + 8], 0
je 0x30d2acc
mov eax, ebx
sub eax, edi
mov ecx, eax
xor ecx, 0x200
not eax
and eax, 0x200
add eax, eax
sub eax, ecx
mov ecx, esi
cmp esi, eax
jl 0x30d2acc
mov ecx, eax
test ecx, ecx
mov dword [esp], ecx
mov dword [esp + 0x18], edi
mov dword [esp + 0x30], esi
je 0x30d2b20
mov eax, ebx
and eax, 3
je 0x30d2b20
mov esi, ebx
not esi
and esi, 3
lea edi, [ecx - 1]
cmp esi, edi
jb 0x30d2af2
mov esi, edi
lea eax, [esi + 1]
push eax
push 0x20
push ebx
call fcn.030dc690
mov eax, edi
add esp, 0xc
add ebx, esi
inc ebx
sub eax, esi
mov esi, dword [esp + 0x30]
mov edx, dword [esp + 8]
mov edi, dword [esp + 0x18]
mov ecx, dword [esp]
cmp eax, 4
jge 0x30d2b27
jmp 0x30d2b6a
mov eax, ecx
cmp eax, 4
jl 0x30d2b6a
mov ecx, eax
mov edi, eax
cmp eax, 7
jl 0x30d2b35
mov eax, 7
neg eax
lea esi, [edi + eax]
add esi, 3
and esi, 0xfffffffc
lea eax, [esi + 4]
push eax
push 0x20
push ebx
call fcn.030dc690
mov eax, edi
add esp, 0xc
add ebx, esi
add ebx, 4
sub eax, esi
add eax, 0xfffffffc
mov esi, dword [esp + 0x30]
mov edx, dword [esp + 8]
mov edi, dword [esp + 0x18]
mov ecx, dword [esp]
test eax, eax
je 0x30d2b8a
push eax
push 0x20
push ebx
mov edi, eax
call fcn.030dc690
mov ecx, dword [esp + 0xc]
mov edx, dword [esp + 0x14]
add esp, 0xc
add ebx, edi
mov edi, dword [esp + 0x18]
cmp dword [ebp + 8], 0
je 0x30d2a9b
mov eax, ebx
sub eax, edi
cmp eax, 0x1ff
jl 0x30d2a9b
add dword [esp + 0x4c], eax
push eax
push dword [ebp + 0xc]
push edi
call dword [ebp + 8]
add esp, 0xc
test eax, eax
jne 0x30d2a90
jmp 0x30d367b
movzx eax, byte [esp + 0x40]
mov dword [esp + 0x30], esi
lea ecx, [esp + 0x41]
mov dword [esp + 0x10], ecx
jmp 0x30d2bed
mov ebx, eax
mov edi, eax
mov edx, dword [esp + 8]
movzx eax, byte [esp + 0x40]
test al, al
je 0x30d2cfd
movsx ecx, al
mov edx, edi
sub edx, ebx
add edx, 0x200
cmp edx, ecx
jl 0x30d2c08
mov edx, ecx
cmp dword [ebp + 8], 0
je 0x30d2c10
mov ecx, edx
sub al, cl
mov byte [esp + 0x40], al
test ecx, ecx
je 0x30d2cbb
mov eax, ecx
and eax, 3
je 0x30d2cf0
mov dword [esp], ecx
mov dword [esp + 0x18], edi
xor edx, edx
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov esi, dword [esp + 0x10]
lea edi, [esi + 1]
mov dword [esp + 0x10], edi
movzx ecx, byte [esi]
mov byte [ebx + edx], cl
inc edx
cmp eax, edx
jne 0x30d2c40
add ebx, edx
mov ecx, dword [esp]
mov eax, ecx
sub eax, edx
mov edi, dword [esp + 0x18]
cmp ecx, 4
jb 0x30d2cbb
nop
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 0x30d2c70
cmp dword [ebp + 8], 0
je 0x30d2be4
mov eax, ebx
sub eax, edi
cmp eax, 0x1ff
jl 0x30d2be4
add dword [esp + 0x4c], eax
push eax
push dword [ebp + 0xc]
push edi
call dword [ebp + 8]
add esp, 0xc
test eax, eax
jne 0x30d2be0
jmp 0x30d367b
mov eax, ecx
cmp ecx, 4
jae 0x30d2c70
jmp 0x30d2cbb
mov eax, dword [esp + 0xc]
mov ecx, eax
shr ecx, 0x18
mov dword [esp], ecx
xor esi, esi
test dl, 0x40
je 0x30d2d33
and eax, 0xffffff
add eax, dword [esp + 0x14]
mov esi, dword [esp]
mov edx, esi
and edx, 1
mov ecx, esi
xor ecx, 1
lea ecx, [ecx + edx*2]
xor edx, edx
div ecx
sub esi, edx
mov edx, dword [esp + 8]
mov eax, dword [esp + 0x14]
test eax, eax
jg 0x30d2d6a
lea eax, [esp + 0x41]
mov dword [esp + 0x10], eax
jmp 0x30d3061
mov ebx, eax
mov edi, eax
mov edx, dword [esp + 8]
mov ecx, dword [esp + 0xc]
mov eax, dword [esp + 0x14]
sub eax, ecx
test eax, eax
jle 0x30d2f16
mov dword [esp + 0x18], edi
mov ecx, edi
sub ecx, ebx
add ecx, 0x200
mov edi, eax
mov dword [esp + 0x14], eax
cmp eax, ecx
jl 0x30d2d84
mov edi, ecx
mov ecx, dword [esp + 0x14]
cmp dword [ebp + 8], 0
je 0x30d2d90
mov ecx, edi
test dl, 0x40
mov dword [esp + 0xc], ecx
jne 0x30d2e30
test ecx, ecx
mov edi, dword [esp + 0x18]
je 0x30d2de0
mov eax, ebx
and eax, 3
je 0x30d2de0
mov eax, ebx
not eax
and eax, 3
dec ecx
cmp eax, ecx
jb 0x30d2dba
mov eax, ecx
mov dword [esp + 0x48], eax
inc eax
push eax
push 0x30
push ebx
mov dword [esp + 0x38], ecx
call fcn.030dc690
mov ecx, dword [esp + 0x38]
add esp, 0xc
mov eax, dword [esp + 0x48]
add ebx, eax
inc ebx
sub ecx, eax
mov edx, dword [esp + 8]
cmp ecx, 4
jl 0x30d2e34
mov edx, ecx
mov eax, ecx
mov edi, ecx
cmp ecx, 7
jl 0x30d2df5
mov eax, 7
neg eax
mov dword [esp + 0x2c], edi
add edi, eax
add edi, 3
and edi, 0xfffffffc
lea eax, [edi + 4]
push eax
push 0x30
push ebx
call fcn.030dc690
mov ecx, dword [esp + 0x38]
add esp, 0xc
add ebx, edi
add ebx, 4
sub ecx, edi
add ecx, 0xfffffffc
mov edi, dword [esp + 0x18]
mov edx, dword [esp + 8]
jmp 0x30d2e34
mov edi, dword [esp + 0x18]
test ecx, ecx
je 0x30d2e80
test cl, 1
jne 0x30d2e50
mov eax, ecx
cmp ecx, 1
jne 0x30d2ed7
jmp 0x30d2e80
mov al, 0x30
test dl, 0x40
je 0x30d2e6a
cmp esi, dword [esp]
jne 0x30d2e69
movzx eax, byte [0x311e001]
xor al, 0x1f
xor esi, esi
jmp 0x30d2e6a
inc esi
mov byte [ebx], al
inc ebx
lea eax, [ecx - 1]
cmp ecx, 1
jne 0x30d2ed7
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
cmp dword [ebp + 8], 0
je 0x30d2d58
mov eax, ebx
sub eax, edi
cmp eax, 0x1ff
jl 0x30d2d58
add dword [esp + 0x4c], eax
push eax
push dword [ebp + 0xc]
push edi
call dword [ebp + 8]
add esp, 0xc
test eax, eax
jne 0x30d2d50
jmp 0x30d367b
movzx ecx, byte [0x311e001]
xor cl, 0x1f
xor esi, esi
mov byte [ebx + 1], cl
add ebx, 2
add eax, 0xfffffffe
je 0x30d2e80
mov cl, 0x30
test dl, 0x40
je 0x30d2f01
cmp esi, dword [esp]
jne 0x30d2f00
movzx edx, byte [0x311e001]
xor dl, 0x1f
xor esi, esi
jmp 0x30d2f03
inc esi
mov dl, 0x30
mov byte [ebx], dl
mov edx, dword [esp + 8]
test dl, 0x40
je 0x30d2ecc
cmp esi, dword [esp]
je 0x30d2ec0
inc esi
jmp 0x30d2ecc
movzx eax, byte [esp + 0x40]
mov esi, dword [esp + 0x30]
mov dword [esp + 0x30], esi
lea ecx, [esp + 0x41]
mov dword [esp + 0x10], ecx
test al, al
jne 0x30d2f4d
jmp 0x30d3061
movzx eax, byte [esp + 0x40]
test al, al
je 0x30d305d
movsx ecx, al
mov edx, edi
sub edx, ebx
add edx, 0x200
cmp edx, ecx
jl 0x30d2f60
mov edx, ecx
cmp dword [ebp + 8], 0
je 0x30d2f68
mov ecx, edx
sub al, cl
mov byte [esp + 0x40], al
test ecx, ecx
je 0x30d300b
mov eax, ecx
and eax, 3
je 0x30d3050
mov dword [esp], ecx
mov dword [esp + 0x18], edi
xor edx, edx
nop
nop
nop
nop
nop
nop
mov esi, dword [esp + 0x10]
lea edi, [esi + 1]
mov dword [esp + 0x10], edi
movzx ecx, byte [esi]
mov byte [ebx + edx], cl
inc edx
cmp eax, edx
jne 0x30d2f90
add ebx, edx
mov ecx, dword [esp]
mov eax, ecx
sub eax, edx
mov edi, dword [esp + 0x18]
cmp ecx, 4
jb 0x30d300b
nop
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 0x30d2fc0
cmp dword [ebp + 8], 0
je 0x30d2f40
mov eax, ebx
sub eax, edi
cmp eax, 0x1ff
jl 0x30d2f40
add dword [esp + 0x4c], eax
push eax
push dword [ebp + 0xc]
push edi
call dword [ebp + 8]
add esp, 0xc
test eax, eax
je 0x30d367b
mov ebx, eax
mov edi, eax
jmp 0x30d2f40
mov eax, ecx
cmp ecx, 4
jae 0x30d2fc0
jmp 0x30d300b
mov edx, dword [esp + 8]
mov esi, dword [esp + 0x1c]
test esi, esi
jne 0x30d30a5
mov eax, dword [esp + 0x24]
test eax, eax
jne 0x30d3288
lea eax, [esp + 0x35]
mov dword [esp + 0x10], eax
movzx eax, byte [esp + 0x34]
test al, al
je 0x30d34fd
mov esi, dword [esp + 0x30]
jmp 0x30d33e1
sub esi, dword [esp]
je 0x30d3069
mov ecx, edi
sub ecx, ebx
add ecx, 0x200
mov eax, esi
cmp esi, ecx
jl 0x30d30b7
mov eax, ecx
mov ecx, esi
cmp dword [ebp + 8], 0
je 0x30d30c1
mov ecx, eax
mov dword [esp + 0x14], esi
cmp ecx, 4
mov dword [esp], ecx
mov esi, edi
jl 0x30d3120
lea edi, [ecx - 4]
mov eax, edi
shr eax, 2
inc eax
and eax, 7
je 0x30d3128
mov dword [esp + 0x18], edi
shl eax, 2
xor edx, edx
mov edi, dword [esp + 4]
nop
nop
nop
nop
nop
nop
mov ecx, dword [edi + edx]
mov dword [ebx + edx], ecx
add edx, 4
cmp eax, edx
jne 0x30d30f0
add ebx, edx
mov ecx, dword [esp]
sub ecx, edx
add edi, edx
mov dword [esp + 4], edi
mov eax, ecx
mov edx, dword [esp + 8]
mov edi, dword [esp + 0x18]
jmp 0x30d3128
mov eax, ecx
mov edi, dword [esp + 4]
jmp 0x30d3181
cmp edi, 0x1c
mov edi, dword [esp + 4]
jb 0x30d3181
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [edi]
mov dword [ebx], eax
mov eax, dword [edi + 4]
mov dword [ebx + 4], eax
mov eax, dword [edi + 8]
mov dword [ebx + 8], eax
mov eax, dword [edi + 0xc]
mov dword [ebx + 0xc], eax
mov eax, dword [edi + 0x10]
mov dword [ebx + 0x10], eax
mov eax, dword [edi + 0x14]
mov dword [ebx + 0x14], eax
mov eax, dword [edi + 0x18]
mov dword [ebx + 0x18], eax
mov eax, dword [edi + 0x1c]
mov dword [ebx + 0x1c], eax
add ebx, 0x20
add edi, 0x20
lea eax, [ecx - 0x20]
add ecx, 0xffffffdc
cmp ecx, 0xfffffff8
mov ecx, eax
jb 0x30d3140
mov dword [esp + 4], edi
test eax, eax
je 0x30d3227
mov ecx, eax
and ecx, 3
mov edi, esi
je 0x30d31d0
mov dword [esp + 0x18], edi
xor edx, edx
mov esi, dword [esp + 4]
mov edi, ebx
movzx ebx, byte [esi + edx]
mov byte [edi + edx], bl
mov ebx, edi
inc edx
cmp ecx, edx
jne 0x30d31a0
add ebx, edx
mov ecx, eax
sub ecx, edx
add esi, edx
mov dword [esp + 4], esi
mov edi, dword [esp + 0x18]
mov edx, dword [esp + 8]
cmp eax, 4
jae 0x30d31d7
jmp 0x30d3229
mov ecx, eax
cmp eax, 4
jb 0x30d3229
mov esi, edi
neg ecx
xor eax, eax
mov edi, dword [esp + 4]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
movzx edx, byte [edi + eax]
mov byte [ebx + eax], dl
movzx edx, byte [edi + eax + 1]
mov byte [ebx + eax + 1], dl
movzx edx, byte [edi + eax + 2]
mov byte [ebx + eax + 2], dl
movzx edx, byte [edi + eax + 3]
mov byte [ebx + eax + 3], dl
add eax, 4
mov edx, ecx
add edx, eax
jne 0x30d31f0
add ebx, eax
add edi, eax
mov dword [esp + 4], edi
mov edx, dword [esp + 8]
mov edi, esi
cmp dword [ebp + 8], 0
mov esi, dword [esp + 0x14]
je 0x30d30a0
mov eax, ebx
sub eax, edi
lea ecx, [eax + 1]
cmp ecx, 0x200
jl 0x30d30a0
add dword [esp + 0x4c], eax
push eax
push dword [ebp + 0xc]
push edi
call dword [ebp + 8]
add esp, 0xc
test eax, eax
je 0x30d367b
mov ebx, eax
mov edi, eax
mov edx, dword [esp + 8]
jmp 0x30d30a0
mov esi, ecx
mov eax, ecx
mov ecx, dword [esp + 0x24]
xor esi, ecx
not eax
and eax, ecx
add eax, eax
sub eax, esi
je 0x30d3075
mov ecx, eax
cmp dword [ebp + 8], 0
mov esi, eax
je 0x30d32ad
mov eax, edi
xor eax, ebx
mov ecx, edi
not ecx
and ecx, ebx
add ecx, ecx
sub eax, ecx
add eax, 0x200
mov ecx, esi
cmp esi, eax
jl 0x30d32ad
mov ecx, eax
test ecx, ecx
mov dword [esp], ecx
mov dword [esp + 0x18], edi
mov dword [esp + 0x24], esi
je 0x30d3330
mov eax, ebx
and eax, 3
je 0x30d3320
mov ecx, ebx
not ebx
and ebx, 3
mov eax, dword [esp]
lea esi, [eax - 1]
cmp ebx, esi
jb 0x30d32d6
mov ebx, esi
lea eax, [ebx + 1]
push eax
push 0x30
mov edi, ecx
push ecx
call fcn.030dc690
add esp, 0xc
lea ecx, [ebx + edi]
inc ecx
sub esi, ebx
mov edi, dword [esp + 0x18]
mov edx, dword [esp + 8]
cmp esi, 4
jge 0x30d3339
test esi, esi
je 0x30d3378
push esi
push 0x30
mov ebx, ecx
push ecx
call fcn.030dc690
mov edx, dword [esp + 0x14]
add esp, 0xc
add ebx, esi
jmp 0x30d337a
mov ecx, ebx
mov esi, dword [esp]
cmp esi, 4
jge 0x30d3339
jmp 0x30d32fa
mov esi, ecx
mov ecx, ebx
cmp esi, 4
jl 0x30d32fa
mov eax, esi
cmp esi, 7
jl 0x30d3345
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, ecx
push ecx
call fcn.030dc690
add esp, 0xc
lea ecx, [edi + ebx]
add ecx, 4
sub esi, edi
add esi, 0xfffffffc
mov edi, dword [esp + 0x18]
mov edx, dword [esp + 8]
test esi, esi
jne 0x30d32fe
mov ebx, ecx
mov esi, dword [esp + 0x30]
cmp dword [ebp + 8], 0
mov ecx, dword [esp]
mov dword [esp + 0x30], esi
je 0x30d3270
mov eax, ebx
sub eax, edi
cmp eax, 0x1ff
jl 0x30d3270
add dword [esp + 0x4c], eax
push eax
push dword [ebp + 0xc]
push edi
call dword [ebp + 8]
add esp, 0xc
test eax, eax
je 0x30d367b
mov ebx, eax
mov edi, eax
mov edx, dword [esp + 8]
mov ecx, dword [esp]
jmp 0x30d3270
mov edx, dword [esp + 8]
movzx eax, byte [esp + 0x34]
test al, al
je 0x30d3501
movsx ecx, al
mov eax, ecx
cmp dword [ebp + 8], 0
je 0x30d3411
mov eax, ebx
not eax
and eax, edi
mov edx, edi
not edx
and edx, ebx
sub edx, eax
mov eax, edx
not eax
and edx, 0xfffffdff
and eax, 0x200
sub eax, edx
cmp eax, ecx
jl 0x30d3411
mov eax, ecx
sub cl, al
mov byte [esp + 0x34], cl
test eax, eax
je 0x30d34ab
mov ecx, eax
and ecx, 3
je 0x30d34f0
mov dword [esp + 0x18], edi
xor edx, edx
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 0x30d3430
add ebx, edx
mov ecx, eax
sub ecx, edx
mov edi, dword [esp + 0x18]
mov esi, dword [esp + 0x30]
cmp eax, 4
jb 0x30d34ab
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 0x30d3460
cmp dword [ebp + 8], 0
je 0x30d33d0
mov eax, ebx
sub eax, edi
cmp eax, 0x1ff
jl 0x30d33d0
add dword [esp + 0x4c], eax
push eax
push dword [ebp + 0xc]
push edi
call dword [ebp + 8]
add esp, 0xc
test eax, eax
je 0x30d367b
mov ebx, eax
mov edi, eax
jmp 0x30d33d0
mov ecx, eax
cmp eax, 4
jae 0x30d3460
jmp 0x30d34ab
mov esi, dword [esp + 0x30]
test dl, 1
je 0x30d363f
test esi, esi
mov eax, dword [esp + 0x28]
jle 0x30d3643
jne 0x30d352c
jmp 0x30d3643
mov eax, dword [esp + 0x28]
sub esi, ecx
je 0x30d3643
mov ecx, edi
sub ecx, ebx
add ecx, 0x200
mov eax, esi
cmp esi, ecx
jl 0x30d353e
mov eax, ecx
mov edx, esi
cmp dword [ebp + 8], 0
je 0x30d3548
mov edx, eax
test edx, edx
mov dword [esp + 8], edx
mov dword [esp + 0x18], edi
mov dword [esp + 0x30], esi
je 0x30d35b0
mov eax, ebx
and eax, 3
je 0x30d35b0
mov ecx, ebx
not ebx
and ebx, 3
lea esi, [edx - 1]
cmp ebx, esi
jb 0x30d356f
mov ebx, esi
lea eax, [ebx + 1]
push eax
push 0x20
mov edi, ecx
push ecx
call fcn.030dc690
add esp, 0xc
lea ecx, [ebx + edi]
inc ecx
sub esi, ebx
mov edi, dword [esp + 0x18]
cmp esi, 4
jge 0x30d35b9
test esi, esi
je 0x30d35f4
push esi
push 0x20
mov ebx, ecx
push ecx
call fcn.030dc690
add esp, 0xc
add ebx, esi
jmp 0x30d35f6
mov ecx, ebx
mov esi, edx
cmp esi, 4
jl 0x30d358f
mov eax, esi
cmp esi, 7
jl 0x30d35c5
mov eax, 7
neg eax
lea edi, [esi + eax]
add edi, 3
and edi, 0xfffffffc
lea eax, [edi + 4]
push eax
push 0x20
mov ebx, ecx
push ecx
call fcn.030dc690
add esp, 0xc
lea ecx, [edi + ebx]
add ecx, 4
sub esi, edi
add esi, 0xfffffffc
mov edi, dword [esp + 0x18]
test esi, esi
jne 0x30d3593
mov ebx, ecx
mov eax, dword [esp + 0x28]
mov esi, dword [esp + 0x30]
mov ecx, dword [esp + 8]
cmp dword [ebp + 8], 0
je 0x30d3524
mov eax, ebx
sub eax, edi
cmp eax, 0x1ff
jl 0x30d3520
add dword [esp + 0x4c], eax
push eax
push dword [ebp + 0xc]
push edi
call dword [ebp + 8]
add esp, 0xc
test eax, eax
je 0x30d367b
mov ebx, eax
mov edi, eax
mov eax, dword [esp + 0x28]
mov ecx, dword [esp + 8]
jmp 0x30d3524
mov eax, dword [esp + 0x28]
inc eax
jmp 0x30d1043
fstp st(1)
fdivp st(1)
or edx, 0x4000000
jmp 0x30d215d
cmp dword [ebp + 8], 0
je 0x30d3681
mov eax, ebx
sub eax, edi
test eax, eax
jle 0x30d3684
add dword [esp + 0x4c], eax
push eax
push dword [ebp + 0xc]
push edi
call dword [ebp + 8]
add esp, 0xc
mov ebx, eax
mov edi, eax
jmp 0x30d3684
xor ebx, ebx
xor edi, edi
jmp 0x30d3684
mov byte [ebx], 0
mov eax, dword [esp + 0x4c]
add eax, ebx
sub eax, edi
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret