Function at 0x446380
Capabilities:
Contain obfuscated stackstrings
Inspect section memory permissions

Disassembly:
sub esp, 0x364
xor edx, edx
mov dword [esp + 0xcc], edx
push ebx
mov dword [esp + 0xd4], edx
push esi
push edi
xor ecx, ecx
mov dword [esp + 0x24], edx
push ebp
mov esi, dword [esp + 0x37c]
mov dword [esp + 0x38], edx
mov dword [esp + 0x2c], edx
mov dword [esp + 0x14], edx
cmp esi, ecx
jg 0x4463c4
mov dword [esp + 0x14], 0x6000000
jmp 0x44783f
test byte [esp + 0x380], 0x20
je 0x4463f1
mov edi, dword [esp + 0x378]
movsx eax, byte [edi]
cmp eax, 9
jl 0x4463f1
cmp eax, 0xd
jle 0x4463e7
cmp eax, 0x20
jne 0x4463f1
inc dword [esp + 0x378]
dec esi
jne 0x4463ce
test esi, esi
je 0x44641e
mov edi, dword [esp + 0x378]
movsx eax, byte [edi]
cmp eax, 0x2b
je 0x446411
cmp eax, 0x2d
jne 0x44641e
mov dword [esp + 0x14], 4
dec esi
inc dword [esp + 0x378]
or dword [esp + 0x14], 2
mov dword [esp + 0x4c], 0
test esi, esi
je 0x446599
lea ebx, [esp + 0x2b4]
mov edi, dword [esp + 0x378]
movsx edi, byte [edi]
lea ebp, [edi - 9]
cmp ebp, 0x68
ja 0x4467f5
xor eax, eax
mov al, byte [ebp + 0x4478cc]
jmp dword [eax*4 + 0x44787c]
xor ebx, ebx
test esi, esi
mov dword [esp + 0x18], ebx
je 0x446814
mov edi, dword [esp + 0x378]
or dword [esp + 0x14], 8
movsx edi, byte [edi]
lea ebp, [edi - 9]
cmp ebp, 0x56
ja 0x4467f9
xor eax, eax
mov al, byte [ebp + 0x447960]
jmp dword [eax*4 + 0x447938]
mov ebx, dword [esp + 0x20]
test esi, esi
je 0x446814
test byte [esp + 0x381], 0x80
je 0x446814
or dword [esp + 0x14], 0x3000000
jmp 0x44783f
cmp dword [esp + 0x28], 0
je 0x44783f
test byte [esp + 0x14], 8
je 0x446857
cmp ebx, 4
ja 0x447772
test byte [esp + 0x14], 0x20
je 0x446840
mov eax, dword [esp + 0x18]
neg eax
mov dword [esp + 0x18], eax
test byte [esp + 0x381], 4
je 0x446864
mov eax, dword [esp + 0x388]
sub dword [esp + 0x18], eax
jmp 0x446864
mov eax, dword [esp + 0x388]
neg eax
mov dword [esp + 0x18], eax
test byte [esp + 0x14], 1
je 0x446871
mov eax, dword [esp + 0x38]
jmp 0x446878
mov eax, dword [esp + 0x384]
mov esi, dword [esp + 0x28]
sub dword [esp + 0x18], eax
mov eax, dword [esp + 0x18]
add eax, esi
cmp eax, 0xfffffebd
jl 0x447772
cmp eax, 0x135
jg 0x447772
lea eax, [esi - 0x1b]
test eax, eax
jle 0x4468a7
add dword [esp + 0x18], eax
cmp dword [esp + 0x18], 0
jne 0x4468b5
cmp dword [esp + 0x28], 0x12
jbe 0x446920
mov dword [esp + 0x3c], 0
cmp dword [esp + 0x18], 0x16
jg 0x4468d0
cmp dword [esp + 0x18], 0xffffffea
jl 0x4468d0
or dword [esp + 0x14], 0x40
cmp dword [esp + 0x28], 0xf
jbe 0x4468f0
cmp dword [esp + 0x28], 0x10
ja 0x446949
cmp dword [esp + 0x2b8], 0x35afe535
jb 0x4468f0
test dl, 1
jne 0x446949
test byte [esp + 0x14], 0x40
jne 0x446920
cmp dword [esp + 0x18], 0
jl 0x446949
mov eax, dword [esp + 0x18]
add eax, esi
cmp eax, 0x25
jg 0x446949
mov eax, dword [esp + 0x18]
mov dword [esp + 0x3c], eax
mov eax, 0xf
sub eax, esi
mov dword [esp + 0x18], eax
sub dword [esp + 0x3c], eax
cmp dword [esp + 0x28], 9
ja 0x447639
mov dword [esp + 0x12c], edx
mov dword [esp + 0x130], 0
fild qword [esp + 0x12c]
jmp 0x4476d4
cmp dword [esp + 0x28], 9
ja 0x44697c
mov dword [esp + 0x10], 1
xor eax, eax
test edx, edx
jle 0x446965
add edx, edx
inc eax
test edx, edx
jg 0x44695e
mov ecx, 0x20
mov dword [esp + 0x138], edx
sub ecx, eax
mov dword [esp + 0x24], ecx
jmp 0x446b6d
mov dword [esp + ecx*4 + 0x2b8], edx
inc ecx
mov eax, dword [esp + 0x2b8]
mov esi, dword [0x473b6c]
mov dword [esp + 0x1b8], eax
cmp ecx, 2
mov dword [esp + 0x48], 2
jb 0x446aa4
mov dword [esp + 0x50], 8
cmp ecx, dword [esp + 0x48]
jne 0x4469c2
mov eax, dword [esp + 0x2c]
mov esi, dword [eax*4 + 0x473b48]
mov edx, dword [esp + 0x1b8]
mov edi, dword [esp + 0x48]
mov dword [esp + 0x1b8], 0
dec edi
cmp edi, 1
jl 0x446a3b
lea ebx, [esp + 0x1b8]
mov dword [esp + 0xd0], esi
mov dword [esp + 0xcc], edx
mov eax, dword [esp + 0xd0]
mul dword [esp + 0xcc]
mov dword [esp + 0xc8], eax
mov dword [esp + 0xc4], edx
mov ebp, dword [esp + 0xc8]
mov edx, dword [ebx + 4]
mov eax, dword [ebx]
add eax, ebp
mov dword [ebx], eax
cmp eax, ebp
mov eax, 1
lea ebp, [ebx + 4]
adc eax, 0xffffffff
add eax, dword [esp + 0xc4]
dec edi
mov dword [ebx + 4], eax
mov ebx, ebp
jne 0x4469e5
mov eax, dword [esp + 0x50]
mov eax, dword [esp + eax + 0x2b4]
add dword [esp + 0x1b8], eax
cmp eax, dword [esp + 0x1b8]
jbe 0x446a91
mov edx, 2
mov eax, dword [esp + 0x50]
mov dword [esp + eax + 0x1b8], 0
cmp dword [esp + 0x1bc], 0xffffffff
jne 0x446a8a
lea eax, [esp + 0x1bc]
mov dword [eax], 0
add eax, 4
inc edx
cmp dword [eax], 0xffffffff
je 0x446a7b
inc dword [esp + edx*4 + 0x1b4]
add dword [esp + 0x50], 4
inc dword [esp + 0x48]
cmp ecx, dword [esp + 0x48]
jae 0x4469b5
lea eax, [esp + ecx*4 + 0x1b4]
mov dword [esp + 0x10], ecx
cmp dword [eax], 0
jne 0x446ac0
sub eax, 4
dec dword [esp + 0x10]
cmp dword [eax], 0
je 0x446ab4
xor edx, edx
mov eax, dword [esp + 0x10]
lea ecx, [esp + eax*4 + 0x1b4]
cmp dword [ecx], edx
jle 0x446adc
mov eax, dword [ecx]
inc edx
add eax, eax
mov dword [ecx], eax
test eax, eax
jg 0x446ad1
mov esi, dword [esp + 0x10]
mov eax, esi
shl eax, 5
sub eax, edx
test edx, edx
mov dword [esp + 0x24], eax
je 0x446b36
mov eax, dword [ecx]
mov dword [esp + 0x138], eax
mov eax, esi
dec eax
je 0x446b51
mov cl, 0x20
sub cl, dl
mov byte [esp + 0xc0], cl
mov edi, esi
mov ebx, dword [esp + eax*4 + 0x1b4]
sub edi, eax
mov ebp, ebx
inc edi
mov cl, byte [esp + 0xc0]
shr ebp, cl
mov cl, dl
or dword [esp + edi*4 + 0x130], ebp
shl ebx, cl
dec eax
mov dword [esp + edi*4 + 0x134], ebx
jne 0x446b08
jmp 0x446b51
test esi, esi
je 0x446b51
mov eax, dword [esp + esi*4 + 0x1b4]
mov ecx, dword [esp + 0x10]
sub ecx, esi
dec esi
mov dword [esp + ecx*4 + 0x138], eax
jne 0x446b3a
mov eax, dword [esp + 0x10]
lea eax, [esp + eax*4 + 0x134]
cmp dword [eax], 0
jne 0x446b6d
sub eax, 4
dec dword [esp + 0x10]
cmp dword [eax], 0
je 0x446b61
test byte [esp + 0x14], 0x40
je 0x446c39
mov eax, dword [esp + 0x10]
and eax, 0x7ffffff
cmp eax, 2
ja 0x446c39
test dword [esp + 0x13c], 0x7ff
jne 0x446c39
cmp dword [esp + 0x10], 2
mov esi, 0
adc esi, 0xffffffff
and esi, dword [esp + 0x13c]
cmp dword [esp + 0x24], 0xfffffc02
jle 0x446be8
shr esi, 0xb
mov eax, dword [esp + 0x138]
shl eax, 0x15
mov edx, dword [esp + 0x24]
or esi, eax
add edx, 0x3fe
shl edx, 0x14
mov eax, dword [esp + 0x138]
and eax, 0x7ffff800
shr eax, 0xb
or edx, eax
jmp 0x446c26
mov ebx, 0xfffffc0e
sub ebx, dword [esp + 0x24]
cmp ebx, 0x20
jl 0x446c08
mov esi, dword [esp + 0x138]
sub ebx, 0x20
mov cl, bl
xor edx, edx
shr esi, cl
jmp 0x446c26
mov cl, bl
mov eax, dword [esp + 0x138]
shr esi, cl
mov cl, 0x20
mov edx, dword [esp + 0x138]
sub cl, bl
shl eax, cl
or esi, eax
mov cl, bl
shr edx, cl
mov dword [esp + 0xd8], edx
mov dword [esp + 0xd4], esi
jmp 0x4476db
cmp dword [esp + 0x18], 0
je 0x447430
cmp dword [esp + 0x10], 2
jb 0x446cf2
mov dword [esp + 0x10], 2
cmp dword [esp + 0x140], 0
mov eax, 1
jl 0x446c68
xor eax, eax
add dword [esp + 0x13c], eax
cmp eax, dword [esp + 0x13c]
jbe 0x446cd5
mov dword [esp + 0x134], 0
mov dword [esp + 0x10], 1
cmp dword [esp + 0x138], 0xffffffff
jne 0x446ca8
lea eax, [esp + 0x138]
sub eax, 4
dec dword [esp + 0x10]
cmp dword [eax], 0xffffffff
je 0x446c9c
cmp dword [esp + 0x10], 0
je 0x446cbc
mov eax, dword [esp + 0x10]
inc dword [esp + eax*4 + 0x134]
jmp 0x446cf2
mov dword [esp + 0x10], 1
mov dword [esp + 0x138], 0x80000000
inc dword [esp + 0x24]
jmp 0x446cf2
cmp dword [esp + 0x13c], 0
jne 0x446cf2
lea eax, [esp + 0x13c]
sub eax, 4
dec dword [esp + 0x10]
cmp dword [eax], 0
je 0x446ce6
mov dword [esp + 0x1c], 2
mov ecx, dword [esp + 0x18]
cmp ecx, 0xffffffd1
jl 0x446d56
cmp ecx, 0x2f
jg 0x446d56
movsx eax, word [ecx*2 + 0x473406]
lea edx, [ecx*8 + 0x47322c]
mov dword [esp + 0x30], eax
lea ecx, [esp + 0x178]
mov eax, dword [edx]
sub edx, 4
mov dword [ecx], eax
add ecx, 4
lea eax, [esp + 0x17c]
cmp ecx, eax
jbe 0x446d22
cmp dword [esp + 0x17c], 0
jne 0x447196
sub eax, 4
dec dword [esp + 0x1c]
cmp dword [eax], 0
je 0x446d45
jmp 0x447196
mov edx, ecx
test ecx, ecx
jge 0x446dc1
neg edx
mov esi, edx
sar esi, 3
mov ax, word [esi*2 + 0x473500]
shr ax, 5
movzx ebx, ax
cmp ebx, edx
jge 0x446d77
inc esi
mov ax, word [esi*2 + 0x473500]
xor edx, edx
mov dx, ax
shr ax, 5
and edx, 0x1f
movzx ebx, ax
movsx eax, word [edx*2 + 0x4734e0]
add ecx, ebx
lea esi, [edx*8 + 0x47346c]
lea edx, [esp + 0x278]
mov dword [esp + 0x5c], eax
mov eax, dword [esi]
sub esi, 4
mov dword [edx], eax
add edx, 4
lea eax, [esp + 0x27c]
cmp edx, eax
jbe 0x446daa
jmp 0x446e20
sar edx, 3
mov ax, word [edx*2 + 0x4735f2]
shr ax, 5
movzx ebx, ax
cmp ebx, ecx
jg 0x446dd8
inc edx
mov ax, word [edx*2 + 0x4735f0]
xor edx, edx
mov dx, ax
shr ax, 5
and edx, 0x1f
movzx ebx, ax
movsx eax, word [edx*2 + 0x4735d0]
sub ecx, ebx
lea esi, [edx*8 + 0x47356c]
lea edx, [esp + 0x278]
mov dword [esp + 0x5c], eax
mov eax, dword [esi]
sub esi, 4
mov dword [edx], eax
add edx, 4
lea eax, [esp + 0x27c]
cmp edx, eax
jbe 0x446e0b
movsx eax, word [ecx*2 + 0x473406]
lea ecx, [ecx*8 + 0x47322c]
lea edx, [esp + 0x178]
mov dword [esp + 0x30], eax
mov eax, dword [ecx]
sub ecx, 4
mov dword [edx], eax
add edx, 4
lea eax, [esp + 0x17c]
cmp edx, eax
jbe 0x446e3a
cmp dword [esp + 0x17c], 0
jne 0x446e65
sub eax, 4
dec dword [esp + 0x1c]
cmp dword [eax], 0
je 0x446e59
mov esi, dword [esp + 0x1c]
mov ecx, dword [esp + 0x1c]
inc esi
invalid
test byte [esp + edi*2], ah
invalid