Function at 0x44a09e
Capabilities:
Inspect section memory permissions
Parse credit card information

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x448
mov edx, dword [ebp + 0x10]
or dword [ebp - 0x2c], 0xffffffff
xor ecx, ecx
mov dword [ebp - 4], 3
mov dword [ebp - 0x14], ecx
mov dword [ebp - 0x18], ecx
mov dword [ebp - 0x28], ecx
mov dword [ebp - 0x24], ecx
mov dword [ebp - 0x1c], ecx
mov dword [ebp - 0x30], ecx
cmp edx, ecx
jne 0x44a0d1
xor eax, eax
leave
ret
mov eax, dword [ebp + 0x14]
mov dword [edx], ecx
cmp eax, ecx
jne 0x44a0e2
mov dword [edx], str.erroffset_passed_as_NULL
jmp 0x44a0cd
test dword [ebp + 0xc], 0x800
mov dword [eax], ecx
je 0x44a0f5
mov dword [edx], str.this_version_of_PCRE_is_not_compiled_with_PCRE_UTF8_support
jmp 0x44a0cd
test dword [ebp + 0xc], 0xffffc580
je 0x44a106
mov dword [edx], str.unknown_option_bit_s__set
jmp 0x44a0cd
mov eax, dword [ebp + 0x18]
cmp eax, ecx
jne 0x44a115
mov eax, 0x465bf0
mov dword [ebp + 0x18], eax
push ebx
mov ebx, dword [ebp + 8]
push esi
lea esi, [eax + 0x100]
mov dword [ebp - 0x5c], esi
mov dword [ebp - 0x60], eax
lea esi, [eax + 0x200]
add eax, 0x340
push edi
mov dword [ebp - 0x58], esi
mov dword [ebp - 0x54], eax
mov dword [ebp - 0x40], ecx
mov dword [ebp - 0x3c], ecx
movzx edi, byte [ebx]
mov dword [ebp - 8], ebx
cmp edi, ecx
je 0x44a7d4
cmp dword [ebp - 0x1c], 0
jne 0x44a713
test byte [ebp + 0xc], 8
je 0x44a184
mov eax, dword [ebp - 0x54]
test byte [edi + eax], 1
jne 0x44a7c2
cmp edi, 0x23
jne 0x44a184
inc ebx
movzx eax, byte [ebx]
test eax, eax
je 0x44a7d1
cmp eax, 0xa
jne 0x44a16e
jmp 0x44a7c2
inc dword [ebp - 0x2c]
cmp edi, 0x3f
jg 0x44a61b
je 0x44a613
cmp edi, 0x24
je 0x44a1bd
cmp edi, 0x28
je 0x44a1f5
cmp edi, 0x29
je 0x44a1c5
jle 0x44a713
cmp edi, 0x2b
jle 0x44a613
cmp edi, 0x2e
jne 0x44a713
inc dword [ebp - 4]
jmp 0x44a7c2
mov eax, dword [ebp - 0x30]
add dword [ebp - 4], 3
test eax, eax
jbe 0x44a1ee
mov esi, dword [ebp - 4]
dec eax
sub esi, dword [ebp + eax*4 - 0x448]
mov dword [ebp - 0x30], eax
movzx eax, byte [ebp + eax - 0x128]
mov dword [ebp - 0x18], eax
jmp 0x44a3cd
xor esi, esi
jmp 0x44a3cd
push 3
lea ecx, [ebx + 1]
xor edi, edi
cmp byte [ecx], 0x3f
pop esi
mov dword [ebp - 0x20], esi
jne 0x44a5c3
lea edx, [ebx + 2]
movzx eax, byte [edx]
cmp eax, 0x3c
jg 0x44a360
je 0x44a349
cmp eax, 0x21
je 0x44a520
cmp eax, 0x23
je 0x44a31f
cmp eax, 0x28
je 0x44a29a
cmp eax, 0x2f
jle 0x44a24c
cmp eax, 0x39
jle 0x44a38f
cmp eax, 0x3a
je 0x44a520
xor esi, esi
mov dword [ebp - 8], esi
mov dword [ebp - 0x34], esi
lea eax, [ebp - 0x34]
mov ebx, edx
movzx ecx, byte [ebx]
cmp ecx, 0x58
jg 0x44a531
je 0x44a52c
cmp ecx, 0x29
je 0x44a561
cmp ecx, 0x2d
je 0x44a527
cmp ecx, 0x3a
je 0x44a580
cmp ecx, 0x55
jne 0x44a99c
or dword [eax], 0x200
jmp 0x44a55b
mov dl, byte [ebx + 3]
cmp dl, 0x52
jne 0x44a2b4
lea eax, [ebx + 4]
cmp byte [eax], 0x29
jne 0x44a2b4
mov ebx, eax
add dword [ebp - 4], esi
jmp 0x44a5df
movzx eax, dl
test byte [eax + 0x466218], 4
je 0x44a2ec
add ebx, 4
add dword [ebp - 4], esi
jmp 0x44a2c9
inc ebx
movzx eax, byte [ebx]
test byte [eax + 0x466218], 4
jne 0x44a2c8
cmp byte [ebx], 0x29
je 0x44a5df
mov eax, dword [ebp + 0x10]
mov dword [eax], str.malformed_number_after____
jmp 0x44aada
mov ebx, ecx
cmp byte [ebx + 2], 0x3f
jne 0x44a30f
mov al, byte [ebx + 3]
cmp al, 0x3d
je 0x44a5df
cmp al, 0x21
je 0x44a5df
cmp al, 0x3c
je 0x44a5df
mov eax, dword [ebp + 0x10]
inc ebx
inc ebx
mov dword [eax], str.assertion_expected_after____
jmp 0x44aada
add ebx, esi
mov al, byte [ebx]
test al, al
je 0x44a33b
cmp al, 0x29
je 0x44a332
inc ebx
mov al, byte [ebx]
test al, al
jne 0x44a327
cmp byte [ebx], 0
jne 0x44a7c2
mov eax, dword [ebp + 0x10]
mov dword [eax], str.missing___after_comment
jmp 0x44aada
add ebx, esi
mov al, byte [ebx]
cmp al, 0x3d
je 0x44a359
cmp al, 0x21
jne 0x44a964
mov edi, esi
jmp 0x44a2ac
cmp eax, 0x3d
jl 0x44a24c
cmp eax, 0x3e
jle 0x44a520
cmp eax, 0x43
je 0x44a4ff
cmp eax, 0x50
je 0x44a498
cmp eax, 0x52
jne 0x44a24c
mov ebx, ecx
inc ebx
inc ebx
cmp eax, 0x52
je 0x44a3a3
inc ebx
movzx eax, byte [ebx]
test byte [eax + 0x466218], 4
jne 0x44a396
cmp byte [ebx], 0x29
jne 0x44a972
mov al, byte [ebx + 1]
add dword [ebp - 4], esi
cmp al, 0x2b
je 0x44a3c6
cmp al, 0x2a
je 0x44a3c6
cmp al, 0x3f
je 0x44a3c6
cmp al, 0x7b
jne 0x44a7c2
add dword [ebp - 4], 6
push 0xb
pop esi
lea ecx, [ebx + 1]
movzx eax, byte [ecx]
cmp eax, 0x7b
jne 0x44a412
lea eax, [ebx + 2]
mov dword [ebp - 0x20], eax
call fcn.00448461
test eax, eax
je 0x44a46e
mov edi, dword [ebp + 0x10]
lea eax, [ebp - 0x10]
push eax
lea eax, [ebp - 0xc]
push eax
mov eax, dword [ebp - 0x20]
call fcn.004484bf
mov ebx, eax
mov eax, edi
cmp dword [eax], 0
pop ecx
pop ecx
jne 0x44aada
mov eax, dword [ebp - 0x10]
jmp 0x44a477
cmp eax, 0x2a
jne 0x44a425
and dword [ebp - 0xc], 0
or eax, 0xffffffff
mov dword [ebp - 0x10], eax
mov ebx, ecx
jmp 0x44a47e
cmp eax, 0x2b
jne 0x44a460
xor edx, edx
inc edx
or eax, 0xffffffff
mov dword [ebp - 0xc], edx
mov dword [ebp - 0x10], eax
mov ebx, ecx
lea ecx, [edx - 1]
imul ecx, esi
add dword [ebp - 4], ecx
cmp eax, edx
jle 0x44a6cc
mov ecx, dword [ebp - 4]
sub eax, edx
add esi, 7
imul eax, esi
lea eax, [ecx + eax - 6]
mov dword [ebp - 4], eax
jmp 0x44a6cc
cmp eax, 0x3f
jne 0x44a46e
and dword [ebp - 0xc], 0
xor eax, eax
inc eax
jmp 0x44a41e
xor eax, eax
inc eax
mov dword [ebp - 0xc], eax
mov dword [ebp - 0x10], eax
mov edx, dword [ebp - 0xc]
test edx, edx
jne 0x44a438
inc dword [ebp - 4]
test eax, eax
jle 0x44a6cc
add esi, 7
dec eax
imul esi, eax
add dword [ebp - 4], esi
jmp 0x44a6cc
add ebx, esi
mov al, byte [ebx]
cmp al, 0x3c
jne 0x44a4cf
mov eax, dword [ebp - 0x54]
inc ebx
mov ecx, ebx
jmp 0x44a4a9
inc ebx
movzx edx, byte [ebx]
test byte [edx + eax], 0x10
jne 0x44a4a8
cmp byte [ebx], 0x3e
jne 0x44a4f1
inc dword [ebp - 0x28]
mov eax, ebx
sub eax, ecx
cmp eax, dword [ebp - 0x24]
jle 0x44a5df
mov dword [ebp - 0x24], eax
jmp 0x44a5df
cmp al, 0x3d
je 0x44a4db
cmp al, 0x3e
jne 0x44a980
mov ecx, dword [ebp - 0x54]
inc ebx
movzx eax, byte [ebx]
test byte [eax + ecx], 0x10
jne 0x44a4db
cmp byte [ebx], 0x29
je 0x44a5df
mov eax, dword [ebp + 0x10]
mov dword [eax], str.syntax_error_after___P
jmp 0x44aada
mov ebx, edx
inc ebx
movzx eax, byte [ebx]
test byte [eax + 0x466218], 4
jne 0x44a501
cmp byte [ebx], 0x29
jne 0x44a98e
add dword [ebp - 4], 2
jmp 0x44a7c2
mov ebx, edx
jmp 0x44a5df
lea eax, [ebp - 8]
jmp 0x44a55b
or dword [eax], 0x40
jmp 0x44a55b
cmp ecx, 0x69
je 0x44a558
cmp ecx, 0x6d
je 0x44a553
cmp ecx, 0x73
je 0x44a54e
cmp ecx, 0x78
jne 0x44a99c
or dword [eax], 8
jmp 0x44a55b
or dword [eax], 4
jmp 0x44a55b
or dword [eax], 2
jmp 0x44a55b
or dword [eax], 1
inc ebx
jmp 0x44a259
cmp dword [ebp - 0x2c], esi
jne 0x44a580
mov eax, dword [ebp - 0x34]
or eax, dword [ebp + 0xc]
mov edx, dword [ebp - 8]
not edx
and eax, edx
or dword [ebp - 0x2c], 0xffffffff
mov dword [ebp + 0xc], eax
mov dword [ebp - 8], esi
mov dword [ebp - 0x34], esi
mov eax, dword [ebp - 8]
or eax, dword [ebp - 0x34]
test al, 7
je 0x44a59c
add dword [ebp - 4], 4
push 2
pop edi
test al, 1
je 0x44a59c
or dword [ebp + 0xc], 0x8000000
cmp ecx, 0x29
jne 0x44a5df
cmp edi, 2
jne 0x44a7c2
cmp dword [ebp - 0x18], 0
je 0x44a5ba
cmp dword [ebp - 0x18], 3
jne 0x44a7c2
add dword [ebp - 0x18], 2
jmp 0x44a7c2
test dword [ebp + 0xc], 0x1000
jne 0x44a5df
inc dword [ebp - 0x14]
cmp dword [ebp - 0x14], 0x96
jle 0x44a5df
mov dword [ebp - 0x20], 6
mov eax, dword [ebp - 0x30]
cmp eax, 0xc8
jae 0x44a9aa
mov cl, byte [ebp - 0x18]
mov byte [ebp + eax - 0x128], cl
mov ecx, dword [ebp - 4]
mov dword [ebp + eax*4 - 0x448], ecx
inc eax
add ecx, dword [ebp - 0x20]
mov dword [ebp - 0x18], edi
mov dword [ebp - 0x30], eax
mov dword [ebp - 4], ecx
jmp 0x44a7c2
inc dword [ebp - 4]
jmp 0x44a6cc
mov eax, edi
sub eax, 0x5b
je 0x44a81d
dec eax
je 0x44a6e3
dec eax
dec eax
je 0x44a1bd
sub eax, 0x1d
je 0x44a653
dec eax
jne 0x44a713
mov eax, dword [ebp - 4]
mov ecx, dword [ebp - 0x18]
lea eax, [eax + ecx + 3]
mov dword [ebp - 4], eax
jmp 0x44a7c2
lea esi, [ebx + 1]
mov eax, esi
call fcn.00448461
test eax, eax
je 0x44a713
mov edi, dword [ebp + 0x10]
lea eax, [ebp - 0x10]
push eax
lea eax, [ebp - 0xc]
push eax
mov eax, esi
call fcn.004484bf
cmp dword [edi], 0
pop ecx
pop ecx
mov ebx, eax
jne 0x44aada
cmp dword [ebp - 0xc], 0
mov eax, dword [ebp - 0x10]
jne 0x44a697
cmp eax, 1
je 0x44a6a2
cmp eax, 0xffffffff
je 0x44a6a2
cmp dword [ebp - 0xc], 1
jne 0x44a6a7
cmp eax, 0xffffffff
jne 0x44a6b4
inc dword [ebp - 4]
jmp 0x44a6c2
dec dword [ebp - 4]
cmp dword [ebp - 0xc], 0
jle 0x44a6b4
add dword [ebp - 4], 4
xor ecx, ecx
test eax, eax
setg cl
lea ecx, [ecx + ecx + 2]
add dword [ebp - 4], ecx
lea eax, [ebx + 1]
cmp byte [eax], 0x3f
jne 0x44a6cc
mov ebx, eax
lea eax, [ebx + 1]
cmp byte [eax], 0x2b
jne 0x44a7c2
add dword [ebp - 4], 6
mov ebx, eax
jmp 0x44a7c2
mov esi, dword [ebp + 0x10]
push 0
push dword [ebp + 0xc]
lea eax, [ebp - 8]
push dword [ebp - 0x14]
push eax
mov eax, esi
call fcn.004482d7
add esp, 0x10
cmp dword [esi], 0
jne 0x44aad7
test eax, eax
jl 0x44a7af
push 0x5c
mov dword [ebp - 8], ebx
pop edi
add dword [ebp - 4], 2
xor esi, esi
xor ecx, ecx
cmp dword [ebp - 0x1c], ecx
je 0x44a734
cmp edi, 0x5c
jne 0x44a784
lea eax, [ebx + 1]
cmp byte [eax], 0x45
jne 0x44a784
mov dword [ebp - 0x1c], ecx
mov ebx, eax
jmp 0x44a785
test byte [ebp + 0xc], 8
je 0x44a757
mov eax, dword [ebp - 0x54]
test byte [edi + eax], 1
jne 0x44a785
cmp edi, 0x23
jne 0x44a757
inc ebx
movzx eax, byte [ebx]
cmp eax, ecx
je 0x44a785
cmp eax, 0xa
jne 0x44a748
jmp 0x44a785
cmp edi, 0x5c
jne 0x44a784
mov edi, dword [ebp + 0x10]
push ecx
push dword [ebp + 0xc]
lea eax, [ebp - 8]
push dword [ebp - 0x14]
push eax
mov eax, edi
call fcn.004482d7
add esp, 0x10
cmp dword [edi], 0
jne 0x44aad7
test eax, eax
jl 0x44a7a1
mov ebx, dword [ebp - 8]
inc esi
cmp esi, 0xfa
jge 0x44a7aa
mov eax, dword [ebp - 0x54]
inc ebx
movzx edi, byte [ebx]
test byte [edi + eax], 0x80
mov dword [ebp - 8], ebx
je 0x44a719
cmp esi, 0xfa
jge 0x44a7aa
dec ebx
add dword [ebp - 4], esi
jmp 0x44a7c2
mov ecx, eax
neg ecx
cmp ecx, 0x10
jne 0x44a7f0
mov dword [ebp - 0x1c], 1
mov ebx, dword [ebp - 8]
inc ebx
movzx edi, byte [ebx]
mov dword [ebp - 8], ebx
test edi, edi
jne 0x44a14c
mov edx, dword [ebp + 0x10]
add dword [ebp - 4], 4
cmp dword [ebp - 4], 0x10000
jle 0x44a9c6
mov dword [edx], str.regular_expression_too_large
jmp 0x44aae2
inc dword [ebp - 4]
push 0xffffffffffffffef
pop ecx
cmp eax, ecx
jg 0x44a7bf
sub ecx, eax
xor eax, eax
inc eax
cmp ecx, 0x20
jge 0x44a806
shl eax, cl
or dword [ebp - 0x3c], eax
cmp ecx, dword [ebp - 0x40]
jle 0x44a811
mov dword [ebp - 0x40], ecx
add dword [ebp - 4], 2
mov ebx, dword [ebp - 8]
jmp 0x44a8ef
xor edi, edi
inc ebx
cmp byte [ebx], 0x5e
mov dword [ebp - 8], ebx
jne 0x44a82c
inc ebx
mov dword [ebp - 8], ebx
mov al, byte [ebx]
test al, al
je 0x44a9b8
cmp dword [ebp - 0x1c], 0
je 0x44a850
cmp al, 0x5c
jne 0x44a89c
lea eax, [ebx + 1]
cmp byte [eax], 0x45
jne 0x44a89c
and dword [ebp - 0x1c], 0
mov ebx, eax
jmp 0x44a89d
cmp al, 0x5c
jne 0x44a8cb
mov esi, dword [ebp + 0x10]
xor ebx, ebx
inc ebx
push ebx
push dword [ebp + 0xc]
lea eax, [ebp - 8]
push dword [ebp - 0x14]
push eax
mov eax, esi
call fcn.004482d7
add esp, 0x10
cmp dword [esi], 0
jne 0x44aad7
mov ecx, eax
neg ecx
cmp ecx, 4
jne 0x44a884
push 8
pop eax
mov ecx, eax
neg ecx
cmp ecx, 0x10
jne 0x44a895
mov dword [ebp - 0x1c], ebx
mov ebx, dword [ebp - 8]
jmp 0x44a89d
mov ebx, dword [ebp - 8]
test eax, eax
jl 0x44a8e6
inc edi
inc ebx
mov al, byte [ebx]
mov dword [ebp - 8], ebx
test al, al
je 0x44a9b8
cmp dword [ebp - 0x1c], 0
jne 0x44a83c
cmp al, 0x5d
jne 0x44a836
test al, al
je 0x44a9b8
cmp edi, 1
jne 0x44a8eb
add dword [ebp - 4], 3
jmp 0x44a7c2
cmp al, 0x5b
jne 0x44a89c
lea eax, [ebp - 8]
push eax
lea ecx, [ebp - 0x60]
mov eax, ebx
call fcn.004488ae
mov ebx, dword [ebp - 8]
pop ecx
test eax, eax
je 0x44a89c
inc ebx
push 0xa
pop edi
jmp 0x44a89d
add dword [ebp - 4], 0x21
cmp byte [ebx + 1], 0x7b
jne 0x44a7c2
lea esi, [ebx + 2]
mov eax, esi
call fcn.00448461
test eax, eax
je 0x44a7c2
mov edi, dword [ebp + 0x10]
lea eax, [ebp - 0x10]
push eax
lea eax, [ebp - 0xc]
push eax
mov eax, esi
call fcn.004484bf
cmp dword [edi], 0
pop ecx
mov ebx, eax
pop ecx
jne 0x44aada
cmp dword [ebp - 0xc], 0
jne 0x44a93c
cmp dword [ebp - 0x10], 1
je 0x44a948
cmp dword [ebp - 0x10], 0xffffffff
je 0x44a948
cmp dword [ebp - 0xc], 1
jne 0x44a94d
cmp dword [ebp - 0x10], 0xffffffff
jne 0x44a94d
inc dword [ebp - 4]
jmp 0x44a951
add dword [ebp - 4], 5
lea eax, [ebx + 1]
cmp byte [eax], 0x3f
jne 0x44a7c2
mov ebx, eax
jmp 0x44a7c2
mov eax, dword [ebp + 0x10]
mov dword [eax], str.unrecognized_character_after____
jmp 0x44aada
mov eax, dword [ebp + 0x10]
mov dword [eax], str.__R_or___digits_must_be_followed_by__
jmp 0x44aada
mov eax, dword [ebp + 0x10]
mov dword [eax], str.unrecognized_character_after___P
jmp 0x44aada
mov eax, dword [ebp + 0x10]
mov dword [eax], str.closing___for___C_expected
jmp 0x44aada
mov eax, dword [ebp + 0x10]
mov dword [eax], str.unrecognized_character_after___
jmp 0x44aada
mov eax, dword [ebp + 0x10]
mov dword [eax], str.parentheses_nested_too_deeply
jmp 0x44aada
mov eax, dword [ebp + 0x10]
mov dword [eax], str.missing_terminating___for_character_class
jmp 0x44aada
mov edi, dword [ebp - 0x24]
mov ecx, dword [ebp - 4]
add edi, 3
mov eax, edi
imul eax, dword [ebp - 0x28]
lea ebx, [eax + ecx + 0x1c]
push ebx
call dword [0x4718a8]
mov esi, eax
pop ecx
test esi, esi
jne 0x44a9f5
mov eax, dword [ebp + 0x10]
mov dword [eax], str.failed_to_get_memory
jmp 0x44aae2
mov eax, dword [ebp + 0x18]
mov ecx, dword [ebp + 0xc]
mov dword [esi + 8], eax
mov eax, dword [ebp - 0x24]
add eax, 3
mov word [esi + 0x18], ax
mov ax, word [ebp - 0x28]
mov word [esi + 0x1a], ax
mov dword [esi + 4], ebx
mov dword [esi], 0x50435245
mov dword [esi + 0xc], ecx
xor ebx, ebx
mov dword [ebp - 0x44], edi
lea eax, [esi + 0x1c]
mov dword [ebp - 0x4c], eax
mov dword [ebp - 0x48], ebx
movzx edi, word [esi + 0x1a]
movzx edx, word [esi + 0x18]
imul edi, edx
add edi, eax
mov eax, dword [ebp + 8]
mov dword [ebp - 8], eax
lea eax, [ebp - 0x60]
push eax
push ebx
lea eax, [ebp - 0x24]
push eax
lea eax, [ebp - 0x28]
push eax
push ebx
push ebx
push dword [ebp + 0x10]
lea eax, [ebp - 8]
push eax
lea eax, [ebp - 0x20]
push eax
lea eax, [ebp - 0x14]
push eax
mov eax, ecx
and eax, 7
push eax
mov dword [ebp - 0x50], edi
mov dword [ebp - 0x38], ebx
mov byte [edi], 0x4c
push ecx
mov dword [ebp - 0x20], edi
mov dword [ebp - 0x14], ebx
call fcn.00449c95
mov ax, word [ebp - 0x14]
mov word [esi + 0x10], ax
mov ax, word [ebp - 0x40]
mov word [esi + 0x12], ax
mov eax, dword [ebp + 0x10]
add esp, 0x30
cmp dword [eax], ebx
mov ebx, dword [ebp - 8]
jne 0x44aaa2
cmp byte [ebx], 0
je 0x44aaa2
mov ecx, eax
mov dword [ecx], str.unmatched_parentheses
jmp 0x44aaa4
mov ecx, eax
mov eax, dword [ebp - 0x20]
mov byte [eax], 0
inc eax
sub eax, edi
cmp eax, dword [ebp - 4]
jle 0x44aab8
mov dword [ecx], str.internal_error:_code_overflow
mov ax, word [esi + 0x12]
cmp ax, word [esi + 0x10]
jbe 0x44aac8
mov dword [ecx], str.reference_to_non_existent_subpattern
cmp dword [ecx], 0
je 0x44aae9
push esi
call dword [0x4718ac]
pop ecx
jmp 0x44aada
mov ebx, dword [ebp - 8]
sub ebx, dword [ebp + 8]
mov eax, dword [ebp + 0x14]
mov dword [eax], ebx
xor eax, eax
jmp 0x44abaf
mov eax, dword [ebp + 0xc]
mov ebx, 0x100
test al, 0x10
jne 0x44ab6d
push dword [ebp - 0x3c]
mov dword [ebp + 0x10], eax
push 0
lea eax, [ebp + 0x10]
push eax
push edi
call fcn.00449e80
add esp, 0x10
test eax, eax
je 0x44ab14
or dword [esi + 0xc], 0x10
jmp 0x44ab6d
mov eax, dword [ebp - 0x28]
test eax, eax
jge 0x44ab2e
push 0
lea eax, [ebp + 0x10]
push eax
push edi
call fcn.00449fea
add esp, 0xc
test eax, eax
jl 0x44ab54
mov ecx, eax
and ecx, 0xff
test ebx, eax
je 0x44ab47
mov edx, dword [ebp - 0x5c]
movzx edx, byte [ecx + edx]
cmp edx, ecx
jne 0x44ab47
mov eax, ecx
or dword [esi + 0xc], 0x40000000
mov word [esi + 0x14], ax
jmp 0x44ab6d
push dword [ebp - 0x3c]
push 0
push edi
call fcn.00449f42
add esp, 0xc
test eax, eax
je 0x44ab6d
or dword [esi + 0xc], 0x10000000
mov edx, dword [ebp - 0x24]
test edx, edx
jl 0x44abad
mov ecx, dword [esi + 0xc]
test cl, 0x10
je 0x44ab84
test edx, 0x200
je 0x44abad
mov eax, edx
and eax, 0xff
test ebx, edx
je 0x44aba0
mov edi, dword [ebp - 0x5c]
movzx edi, byte [eax + edi]
cmp edi, eax
jne 0x44aba0
and edx, 0xfffffeff
or ecx, 0x20000000
mov word [esi + 0x16], dx
mov dword [esi + 0xc], ecx
mov eax, esi
pop edi
pop esi
pop ebx
leave
ret