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

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
and esp, 0xfffffff8
sub esp, 0x70
mov ebx, dword [edx]
mov edi, edx
mov eax, dword [ebx]
mov edx, dword [eax]
cmp byte [edx + 0x51], 0
mov dword [esp + 0x40], edx
je 0x4adb26
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret
mov dword [esp + 0xc], eax
mov eax, dword [ebp + 8]
mov dword [esp + 0x3c], ecx
mov ecx, dword [edi + 0x14]
xor esi, esi
mov dword [esp + 0x58], ebx
lea eax, [eax + eax*2]
mov dword [esp + 4], ecx
shl eax, 4
mov dword [esp + 0x30], eax
mov eax, dword [ecx + eax]
lea ecx, [ebx + 0x1e0]
mov dword [esp + 0x38], ecx
mov edx, dword [eax + 0xc]
mov dword [esp + 0x1c], eax
test edx, edx
je 0x4adb6f
call fcn.004b0160
mov dword [esp + 0x18], eax
mov dword [esp + 0x14], edx
jmp 0x4adb7f
mov dword [esp + 0x18], 0
mov dword [esp + 0x14], 0
mov eax, dword [esp + 0x1c]
mov dword [esp + 8], edi
movzx eax, byte [eax]
cmp eax, 0x32
mov dword [esp], eax
je 0x4adbfe
cmp al, 0x31
jne 0x4adc02
mov esi, dword [esp + 0x1c]
mov ecx, dword [esp + 0xc]
mov edx, esi
call fcn.0048e130
test eax, eax
jne 0x4adb1e
test byte [esi + 5], 8
jne 0x4adc1e
mov eax, dword [esi + 0x14]
test eax, eax
je 0x4adc18
mov ecx, dword [eax]
test ecx, ecx
jle 0x4adc18
lea ebx, [eax + 4]
xor edx, edx
xor esi, esi
xor edi, edi
mov dword [esp + 0x20], eax
jmp 0x4adbee
mov ecx, dword [esp + 0x38]
call fcn.004b0160
mov ecx, dword [esp + 0x20]
mov ecx, dword [ecx]
or esi, edx
mov edx, dword [esp + 0x10]
inc edi
add ebx, 0x10
or edx, eax
cmp edi, ecx
jge 0x4adc2e
mov dword [esp + 0x10], edx
mov edx, dword [ebx]
test edx, edx
jne 0x4adbcf
xor eax, eax
xor edx, edx
jmp 0x4adbde
xor edx, edx
jmp 0x4adc2e
mov eax, dword [esp + 0x1c]
mov edx, dword [eax + 0x10]
test edx, edx
je 0x4adc18
mov ecx, dword [esp + 0x38]
call fcn.004b0160
jmp 0x4adc2a
xor edx, edx
xor esi, esi
jmp 0x4adc2e
mov edx, dword [esi + 0x14]
mov ecx, dword [esp + 0x38]
call fcn.004afe60
mov esi, edx
mov edx, eax
mov eax, dword [esp + 0x30]
mov edi, dword [esp + 4]
mov ebx, dword [esp + 0x1c]
mov dword [edi + eax + 0x24], esi
mov esi, dword [esp + 0x38]
mov dword [edi + eax + 0x20], edx
mov edx, ebx
mov ecx, esi
mov dword [esi], 0
call fcn.004b0160
cmp dword [esi], 0
mov dword [esp + 0x20], eax
mov dword [esp + 0x28], edx
je 0x4adc6b
mov eax, dword [esp + 0x30]
or byte [edi + eax + 0xb], 0x10
test byte [ebx + 4], 1
jne 0x4add11
mov dword [esp + 0x58], 0
mov dword [esp + 0x60], 0
mov ecx, dword [esp + 4]
mov esi, dword [esp + 0x30]
lea eax, [ecx + esi]
mov dword [esp + 0x10], eax
mov eax, dword [esp + 0x28]
mov dword [ecx + esi + 0x2c], eax
mov eax, dword [esp + 0x20]
mov dword [ecx + esi + 0x28], eax
mov eax, dword [esp]
add al, 0xd3
mov dword [ecx + esi + 0x14], 0xffffffff
mov dword [ecx + esi + 0x10], 0xffffffff
mov word [ecx + esi + 0xc], 0
cmp al, 0xc
ja 0x4ae026
movzx eax, al
mov ecx, 0x1f31
bt ecx, eax
jae 0x4ae026
mov dword [esp + 0x48], 0xffffffff
mov dword [esp + 0x4c], 0xffffffff
mov eax, 0
mov ecx, dword [ebx + 0xc]
test ecx, ecx
je 0x4add49
nop word cs:[eax + eax]
nop
test byte [ecx + 5], 0x10
je 0x4add47
mov ecx, dword [ecx + 0xc]
test ecx, ecx
jne 0x4add00
xor eax, eax
jmp 0x4add49
mov esi, dword [esp + 0x58]
mov eax, dword [esi + 0x1e4]
test eax, eax
jle 0x4adee6
movsx edx, word [ebx + 0x24]
xor ecx, ecx
nop dword [eax]
cmp dword [esi + ecx*4 + 0x1e8], edx
je 0x4ade97
inc ecx
cmp eax, ecx
jne 0x4add30
jmp 0x4adee6
mov eax, ecx
mov ecx, dword [ebx + 0x10]
test ecx, ecx
je 0x4add71
mov edi, dword [esp + 4]
nop word cs:[eax + eax]
nop
test byte [ecx + 5], 0x10
je 0x4add79
mov ecx, dword [ecx + 0xc]
test ecx, ecx
jne 0x4add60
xor ebx, ebx
jmp 0x4add7b
mov edi, dword [esp + 4]
xor ebx, ebx
jmp 0x4add7b
mov ebx, ecx
mov esi, dword [esp + 0x30]
mov ecx, dword [edi + esi + 0x24]
mov edx, dword [edi + esi + 0x20]
and ecx, dword [esp + 0x14]
and edx, dword [esp + 0x18]
or edx, ecx
mov ecx, 0x1fff
mov edx, 0x800
cmove edx, ecx
mov ecx, dword [edi + esi + 0x18]
mov dword [esp + 0x24], edx
test ecx, ecx
jle 0x4addb4
mov eax, dword [eax + 0x14]
shl ecx, 4
mov eax, dword [ecx + eax - 0xc]
mov edx, dword [esp]
mov cl, byte [eax]
mov esi, ebx
add edx, 0xffffffca
cmp edx, 3
mov dword [esp + 0x34], edx
ja 0x4addd4
cmp cl, 0xae
jne 0x4addd4
mov eax, dword [eax + 0x14]
mov eax, dword [eax + 4]
mov cl, byte [eax]
mov edx, dword [esp + 0x30]
cmp cl, 0xa4
lea edx, [edi + edx + 0x14]
mov dword [esp + 0x2c], edx
jne 0x4addf6
mov ecx, dword [eax + 0x1c]
mov dword [esp + 0x48], ecx
movsx edx, word [eax + 0x20]
mov dword [esp + 0x4c], edx
jmp 0x4ade52
mov ebx, dword [esp + 0x18]
mov edi, dword [esp + 0x14]
mov ecx, ebx
mov edx, edi
add ecx, 0xffffffff
adc edx, 0xffffffff
and ecx, ebx
and edx, edi
or edx, ecx
mov edx, ebx
mov ebx, dword [esp + 0x10]
setne cl
or edx, edi
mov edi, dword [esp + 4]
sete dl
or dl, cl
jne 0x4adf36
mov ecx, dword [esp + 0x3c]
mov edx, dword [esp + 0x18]
push eax
lea eax, [esp + 0x4c]
push eax
push dword [esp + 0x1c]
call fcn.004b0590
add esp, 0xc
test eax, eax
je 0x4adf36
mov ecx, dword [esp + 0x48]
mov edx, dword [esp + 0x4c]
mov ebx, dword [esp + 0x30]
lea eax, [edi + ebx + 0xc]
mov dword [esp + 4], eax
mov eax, dword [esp + 0x2c]
mov dword [eax], ecx
mov ecx, dword [esp]
mov dword [edi + ebx + 0x1c], edx
cmp cl, 0x2d
je 0x4adefc
cmp cl, 0x32
je 0x4adf0d
mov ebx, dword [esp + 0x10]
cmp cl, 0x31
jne 0x4adf1e
movzx ecx, word [esp + 0x24]
and ecx, 1
jmp 0x4adf2f
mov eax, 1
xor edi, edi
xor edx, edx
mov esi, dword [esp + 0x20]
shld edi, eax, cl
shl eax, cl
test cl, 0x20
cmovne edi, eax
cmovne eax, edx
mov edx, dword [esp + 0x28]
mov ecx, eax
or esi, eax
mov dword [esp + 0x20], esi
or edx, edi
add ecx, 0xffffffff
mov dword [esp + 0x58], ecx
mov ecx, edi
mov dword [esp + 0x28], edx
adc ecx, 0xffffffff
mov dword [esp + 0x60], ecx
mov ecx, edx
shld edx, esi, 0x1f
shr ecx, 1
cmp edx, eax
sbb ecx, edi
jb 0x4adc85
push str.ON_clause_references_tables_to_its_right
push dword [esp + 0x10]
call fcn.0042af90
add esp, 8
jmp 0x4adb1e
movzx ecx, word [esp + 0x24]
mov ebx, dword [esp + 0x10]
and ecx, 0x80
jmp 0x4adf2f
movzx ecx, word [esp + 0x24]
mov ebx, dword [esp + 0x10]
and ecx, 0x100
jmp 0x4adf2f
add cl, 0xcb
mov edx, 2
shl edx, cl
movzx ecx, word [esp + 0x24]
and ecx, edx
mov eax, dword [esp + 4]
mov word [eax], cx
cmp byte [esp], 0x2d
jne 0x4adf45
mov eax, dword [esp + 0x30]
or byte [edi + eax + 0xb], 8
test esi, esi
je 0x4ae00e
mov eax, dword [esp + 0x30]
cmp dword [esp + 0x34], 3
mov cl, byte [esi]
lea eax, [edi + eax + 0x20]
mov edx, dword [eax]
mov eax, dword [eax + 4]
ja 0x4adf70
cmp cl, 0xae
jne 0x4adf70
mov ecx, dword [esi + 0x14]
mov esi, dword [ecx + 4]
mov cl, byte [esi]
cmp cl, 0xa4
jne 0x4adf8a
mov eax, dword [esi + 0x1c]
mov edx, dword [esp + 0x1c]
mov dword [esp + 0x48], eax
movsx eax, word [esi + 0x20]
mov dword [esp + 0x4c], eax
jmp 0x4adfc3
mov ecx, edx
mov edi, eax
add ecx, 0xffffffff
adc edi, 0xffffffff
and ecx, edx
and edi, eax
or edi, ecx
mov edi, edx
setne cl
or edi, eax
sete ch
or ch, cl
jne 0x4ae00e
mov ecx, dword [esp + 0x3c]
lea edi, [esp + 0x48]
push esi
push edi
push eax
call fcn.004b0590
add esp, 0xc
mov edx, dword [esp + 0x1c]
test eax, eax
je 0x4ae00e
mov eax, dword [esp + 0x2c]
mov ecx, dword [esp + 0x40]
cmp dword [eax], 0
js 0x4ae015
test edx, edx
je 0x4ae1c8
push 0
push 0
mov edi, ecx
call fcn.0048fa30
add esp, 8
cmp byte [edi + 0x51], 0
mov edi, dword [esp + 8]
mov esi, eax
je 0x4ae1d8
test esi, esi
je 0x4adb1e
mov ecx, dword [esp + 0x40]
mov edx, esi
call fcn.00469b50
jmp 0x4adb1e
mov edi, ebx
jmp 0x4ae88c
mov dword [esp + 4], 0
mov esi, edx
mov edi, ebx
jmp 0x4ae2bc
mov al, byte [ebx]
cmp al, 0x2b
je 0x4ae270
mov ebx, dword [esp + 8]
cmp al, 0x30
jne 0x4ae894
cmp byte [ebx + 8], 0x2c
jne 0x4ae894
mov eax, dword [esp + 0x1c]
xor esi, esi
mov edi, 0
mov edx, dword [eax + 0xc]
mov ebx, dword [eax + 0x14]
test edx, edx
je 0x4ae06d
mov ecx, dword [esp + 0x40]
push 0
push 0
call fcn.0048fa30
add esp, 8
mov edi, eax
mov edx, dword [ebx + 4]
test edx, edx
je 0x4ae086
mov ecx, dword [esp + 0x40]
push 0
push 0
call fcn.0048fa30
add esp, 8
mov esi, eax
mov ecx, dword [esp + 0xc]
mov dword [esp + 4], ebx
mov edx, 0x39
push esi
push edi
call fcn.00472b00
add esp, 8
mov edi, dword [esp + 0x1c]
test eax, eax
je 0x4ae0b6
mov ecx, dword [edi + 4]
and ecx, 1
or dword [eax + 4], ecx
movzx ecx, word [edi + 0x24]
mov word [eax + 0x24], cx
mov ebx, dword [esp + 8]
mov edx, eax
mov ecx, ebx
push 3
call fcn.004ad850
add esp, 4
mov ecx, dword [esp + 0x3c]
mov esi, eax
mov edx, ebx
push eax
call fcn.004adb00
add esp, 4
mov eax, dword [ebx + 0x14]
mov edx, dword [ebp + 8]
shl esi, 4
lea ecx, [esi + esi*2]
mov esi, ebx
mov dword [eax + ecx + 0x10], edx
shl edx, 4
mov eax, dword [ebx + 0x14]
lea ebx, [edx + edx*2]
mov dword [esp], ebx
movzx edx, word [eax + ebx + 8]
mov word [eax + ecx + 8], dx
mov eax, dword [esi + 0x14]
xor esi, esi
inc byte [eax + ebx + 0xe]
mov edx, dword [edi + 0xc]
mov edi, 0
test edx, edx
je 0x4ae128
mov ecx, dword [esp + 0x40]
push 0
push 0
call fcn.0048fa30
add esp, 8
mov edi, eax
mov eax, dword [esp + 4]
mov edx, dword [eax + 0x14]
test edx, edx
je 0x4ae145
mov ecx, dword [esp + 0x40]
push 0
push 0
call fcn.0048fa30
add esp, 8
mov esi, eax
mov ecx, dword [esp + 0xc]
mov edx, 0x37
push esi
push edi
call fcn.00472b00
add esp, 8
test eax, eax
je 0x4ae171
mov edx, dword [esp + 0x1c]
mov ecx, dword [edx + 4]
and ecx, 1
or dword [eax + 4], ecx
movzx ecx, word [edx + 0x24]
mov word [eax + 0x24], cx
mov edi, dword [esp + 8]
mov edx, eax
mov ecx, edi
push 3
call fcn.004ad850
add esp, 4
mov ecx, dword [esp + 0x3c]
mov esi, eax
mov edx, edi
push eax
call fcn.004adb00
add esp, 4
mov ebx, dword [edi + 0x14]
mov ecx, dword [ebp + 8]
shl esi, 4
lea eax, [esi + esi*2]
mov esi, dword [esp]
mov dword [ebx + eax + 0x10], ecx
mov ecx, dword [edi + 0x14]
add ebx, esi
movzx edx, word [ecx + esi + 8]
mov word [ecx + eax + 8], dx
mov eax, dword [edi + 0x14]
inc byte [eax + esi + 0xe]
mov dword [esp + 0x10], ebx
mov ebx, edi
jmp 0x4ae894
cmp byte [ecx + 0x51], 0
mov edi, dword [esp + 8]
jne 0x4adb1e
xor esi, esi
mov ecx, edi
mov edx, esi
push 3
call fcn.004ad850
add esp, 4
test eax, eax
je 0x4adb1e
mov edx, dword [edi + 0x14]
mov ebx, dword [ebp + 8]
mov ecx, eax
shl ecx, 4
lea ecx, [ecx + ecx*2]
mov dword [edx + ecx + 0x10], ebx
mov dword [esp + 0x10], edx
mov edx, dword [edi + 0x14]
mov edi, ebx
shl edi, 4
lea edi, [edi + edi*2]
movzx ebx, word [edx + edi + 8]
mov word [edx + ecx + 8], bx
mov ebx, dword [esp + 8]
mov edx, dword [ebx + 0x14]
inc byte [edx + edi + 0xe]
mov edx, dword [esp + 0x10]
cmp byte [esp], 0x2d
jne 0x4ae239
lea eax, [eax + eax*2]
shl eax, 4
or byte [edx + eax + 0xb], 8
mov edi, dword [ebx + 0x14]
mov ebx, dword [esp + 0x30]
add edx, ecx
mov dword [esp + 0x10], edx
mov edx, esi
lea eax, [edi + ebx]
mov dword [esp], eax
or word [edi + ebx + 0xa], 8
mov ecx, dword [esp + 0xc]
call fcn.004b0430
test eax, eax
je 0x4ae2ad
or byte [edi + ebx + 0xd], 8
mov ax, 0x800
mov dword [esp + 4], eax
jmp 0x4ae2b5
mov ecx, dword [esp + 8]
mov eax, dword [ecx]
mov edx, dword [ecx + 0x14]
mov dword [esp + 4], eax
mov eax, dword [eax]
mov dword [esp + 0x54], edx
mov ecx, dword [eax]
mov dword [esp + 0x5c], eax
mov eax, dword [esp + 0x30]
mov eax, dword [edx + eax]
test ecx, ecx
mov dword [esp + 0x44], ecx
mov dword [esp + 0x64], eax
je 0x4ae30c
mov edx, 0x1a0
push 0
call fcn.00435490
add esp, 4
jmp 0x4ae318
mov dword [esp + 4], 0
mov ebx, dword [esp + 0x10]
mov edi, dword [esp]
mov edx, dword [esi + 0xc]
cmp byte [edx], 0xae
je 0x4ae7f0
mov eax, dword [esi + 0x10]
cmp byte [eax], 0xae
je 0x4ae7f0
test byte [edx + 5], 1
mov ecx, dword [esp + 0xc]
jne 0x4ae7a5
test eax, eax
je 0x4ae2f0
test byte [eax + 5], 1
jne 0x4ae7a3
mov dword [esp], eax
call fcn.0046dea0
test eax, eax
jne 0x4ae7aa
mov ecx, dword [esp + 0xc]
mov edx, dword [esp]
jmp 0x4ae7a5
mov ecx, 0x1a0
xor edx, edx
call fcn.0041c030
mov ebx, eax
test eax, eax
je 0x4ae77f
push 0x1a0
push 0
push ebx
call sub.api_ms_win_crt_string_l1_1_0.dll_memset
add esp, 0xc
mov eax, dword [esp + 0x54]
mov ecx, dword [esp + 0x30]
lea esi, [ebx + 0x18]
mov dword [eax + ecx + 0x1c], ebx
or byte [eax + ecx + 0xa], 0x10
push 0x180
push 0
push esi
call sub.api_ms_win_crt_string_l1_1_0.dll_memset
add esp, 0xc
mov eax, dword [esp + 4]
mov edx, dword [esp + 0x64]
mov ecx, ebx
mov dword [ebx], eax
mov byte [ebx + 9], 0
mov dword [ebx + 4], 0
mov dword [ebx + 0xc], 0
mov dword [ebx + 0x10], 8
mov dword [ebx + 0x14], esi
push 0x2b
call fcn.004a8aa0
add esp, 4
mov esi, dword [ebx + 0xc]
mov edi, dword [esp + 0x3c]
test esi, esi
jle 0x4ae3aa
inc esi
lea eax, [esi - 2]
mov ecx, edi
mov edx, ebx
push eax
call fcn.004adb00
add esp, 4
dec esi
cmp esi, 1
jg 0x4ae394
mov eax, dword [esp + 0x44]
mov dword [esp + 0x10], ebx
mov ebx, dword [esp + 8]
cmp byte [eax + 0x51], 0
jne 0x4ae793
mov eax, dword [esp + 0x10]
mov esi, dword [eax + 0xc]
test esi, esi
jle 0x4aea26
mov edi, dword [eax + 0x14]
mov dword [esp + 0x28], 0xffffffff
mov dword [esp + 0x2c], 0xffffffff
mov dword [esp + 0x18], 0xffffffff
mov dword [esp + 0x20], 0xffffffff
movzx ecx, word [edi + 0xc]
mov dword [esp], edi
test ecx, 0x1ff
je 0x4ae443
movzx eax, word [edi + 0xa]
test al, 8
jne 0x4ae73c
mov edx, dword [esp + 4]
mov dword [esp + 0x14], ecx
mov dword [esp + 0x34], esi
mov ebx, dword [edx + 0x1e4]
test ebx, ebx
jle 0x4ae43a
mov edx, dword [edi + 0x14]
xor ecx, ecx
mov esi, dword [esp + 4]
cmp dword [esi + ecx*4 + 0x1e8], edx
je 0x4ae4a6
inc ecx
cmp ebx, ecx
jne 0x4ae428
xor edx, edx
xor esi, esi
jmp 0x4ae4c5
mov ecx, dword [esp + 0x44]
movzx eax, word [ecx + 0x11c]
cmp eax, 0x197
ja 0x4ae481
cmp dword [ecx + 0x118], 0
je 0x4ae506
cmp byte [ecx + 0x51], 0
mov dword [esp + 0x18], 0
je 0x4ae50c
mov dword [esp + 0x20], 0
jmp 0x4ae739
mov dword [esp + 0x34], esi
mov esi, dword [ecx + 0x138]
test esi, esi
je 0x4ae526
mov eax, dword [esi]
mov dword [ecx + 0x138], eax
inc dword [ecx + 0x128]
jmp 0x4ae542
xor esi, esi
mov edx, 1
shld esi, edx, cl
mov edx, 1
shl edx, cl
test cl, 0x20
mov ecx, 0
cmovne esi, edx
cmovne edx, ecx
test al, 2
je 0x4ae705
test ebx, ebx
jle 0x4ae4fd
mov ecx, dword [esp + 0x10]
mov eax, dword [edi + 0x10]
mov ecx, dword [ecx + 0x14]
lea eax, [eax + eax*2]
shl eax, 4
mov eax, dword [ecx + eax + 0x14]
xor ecx, ecx
mov edi, dword [esp + 4]
cmp dword [edi + ecx*4 + 0x1e8], eax
je 0x4ae6e2
inc ecx
cmp ebx, ecx
jne 0x4ae4e7
xor eax, eax
xor edi, edi
jmp 0x4ae701
inc dword [ecx + 0x12c]
mov dword [esp + 0x34], esi
mov edx, 0x198
push 0
call fcn.00435620
add esp, 4
mov edi, dword [esp]
mov esi, eax
jmp 0x4ae542
mov esi, dword [ecx + 0x134]
test esi, esi
je 0x4ae765
mov eax, dword [esi]
mov dword [ecx + 0x134], eax
inc dword [ecx + 0x128]
test esi, esi
je 0x4ae600
mov dword [edi + 0x1c], esi
or byte [edi + 0xa], 0x20
mov word [edi + 0xc], 0x400
lea edi, [esi + 0x18]
push 0x180
push 0
push edi
call sub.api_ms_win_crt_string_l1_1_0.dll_memset
add esp, 0xc
mov eax, dword [ebx]
mov ecx, dword [esp]
mov dword [esi], eax
mov byte [esi + 9], 0
mov dword [esi + 4], 0
mov dword [esi + 0xc], 0
mov dword [esi + 0x10], 8
mov dword [esi + 0x14], edi
mov edx, dword [ecx]
mov ecx, esi
push 0x2c
call fcn.004a8aa0
add esp, 4
mov edi, dword [esi + 0xc]
mov ebx, dword [esp + 0x3c]
test edi, edi
jle 0x4ae5bd
inc edi
lea eax, [edi - 2]
mov ecx, ebx
mov edx, esi
push eax
call fcn.004adb00
add esp, 4
dec edi
cmp edi, 1
jg 0x4ae5a7
mov eax, dword [esp + 8]
mov edi, dword [esp]
mov edx, 0
mov dword [esp + 0x20], 0
mov dword [esi + 4], eax
mov eax, dword [esp + 0x44]
cmp byte [eax + 0x51], 0
mov eax, 0
je 0x4ae619
and dword [esp + 0x28], edx
and dword [esp + 0x2c], eax
mov ebx, dword [esp + 8]
mov esi, dword [esp + 0x34]
mov dword [esp + 0x18], 0
jmp 0x4ae73c
mov esi, dword [esp + 0x34]
mov dword [esp + 0x18], 0
mov dword [esp + 0x20], 0
jmp 0x4ae73c
mov eax, dword [esi + 0xc]
test eax, eax
mov dword [esp + 0x24], eax
jle 0x4ae75c
mov esi, dword [esi + 0x14]
xor edx, edx
xor eax, eax
xor ebx, ebx
mov dword [esp + 0x18], eax
mov eax, dword [esi]
mov al, byte [eax]
add al, 0xd3
cmp al, 0xc
ja 0x4ae6d1
movzx eax, al
mov ecx, 0x1f31
bt ecx, eax
jae 0x4ae6d1
mov eax, dword [esp + 4]
mov eax, dword [eax + 0x1e4]
test eax, eax
jle 0x4ae688
mov edi, dword [esi + 0x14]
xor ecx, ecx
mov dword [esp + 0x14], edx
nop dword [eax + eax]
mov edx, dword [esp + 4]
cmp dword [edx + ecx*4 + 0x1e8], edi
je 0x4ae68e
inc ecx
cmp eax, ecx
jne 0x4ae670
xor edi, edi
xor eax, eax
jmp 0x4ae6ad
xor edi, edi
xor eax, eax
jmp 0x4ae6b1
mov edi, 1
xor eax, eax
mov edx, 1
shld eax, edx, cl
shl edi, cl
test cl, 0x20
mov ecx, 0
cmovne eax, edi
cmovne edi, ecx
mov edx, dword [esp + 0x14]
mov ecx, dword [esp + 0x18]
or edx, edi
mov edi, dword [esp]
or ecx, eax
mov eax, ecx
inc ebx
add esi, 0x30
cmp ebx, dword [esp + 0x24]
jne 0x4ae631
jmp 0x4ae5e3
cmp word [esi + 0xc], 0x40
je 0x4ae654
mov eax, dword [esp + 0x18]
jmp 0x4ae6be
xor edi, edi
mov eax, 1
shld edi, eax, cl
mov eax, 1
shl eax, cl
test cl, 0x20
mov ecx, 0
cmovne edi, eax
cmovne eax, ecx
or edx, eax
or esi, edi
mov edi, dword [esp + 0x18]
mov ecx, dword [esp + 0x20]
and dword [esp + 0x28], edx
and dword [esp + 0x2c], esi
mov ebx, dword [esp + 8]
and edi, edx
and ecx, esi
test byte [esp + 0x14], 2
mov esi, dword [esp + 0x34]
mov edx, 0
cmove ecx, edx
cmove edi, edx
mov dword [esp + 0x20], ecx
mov dword [esp + 0x18], edi
mov edi, dword [esp]
cmp esi, 2
jl 0x4ae9f6
mov eax, dword [esp + 0x28]
dec esi
add edi, 0x30
or eax, dword [esp + 0x2c]
jne 0x4ae3f2
jmp 0x4ae9f6
xor edx, edx
xor eax, eax
jmp 0x4ae5e3
inc dword [ecx + 0x130]
mov edx, 0x198
push 0
call fcn.00435620
add esp, 4
jmp 0x4ae522
mov eax, dword [esp + 0x54]
mov ecx, dword [esp + 0x30]
mov ebx, dword [esp + 8]
mov dword [eax + ecx + 0x1c], 0
mov eax, dword [ebx + 0x14]
add eax, dword [esp + 0x30]
mov dword [esp + 0x10], eax
jmp 0x4ae894
mov edx, eax
call fcn.0046dea0
mov edx, dword [esi + 0x10]
mov dword [esp], eax
test byte [edx + 5], 1
jne 0x4ae7de
mov eax, dword [esi + 0xc]
mov ecx, dword [esp + 0xc]
test eax, eax
je 0x4ae7c7
test byte [eax + 5], 1
jne 0x4ae7e4
mov dword [esp + 0x10], eax
call fcn.0046dea0
test eax, eax
jne 0x4ae7eb
mov ecx, dword [esp + 0xc]
mov edx, dword [esp + 0x10]
jmp 0x4ae7e6
mov ecx, dword [esp + 0xc]
jmp 0x4ae7e6
mov edx, eax
call fcn.0046dea0
cmp dword [esp], eax
je 0x4ae7f4
xor byte [esi + 5], 2
mov eax, dword [esi + 0x10]
mov ecx, dword [esi + 0xc]
mov dword [esi + 0x10], ecx
mov dword [esi + 0xc], eax
mov al, byte [esi]
cmp al, 0x36
jb 0x4ae80e
add al, 0xca
xor al, 2
add al, 0x36
mov byte [esi], al
mov eax, dword [esp + 0x48]
mov edx, dword [esp + 0x14]
mov ecx, dword [esp + 0x18]
mov dword [ebx + 0x14], eax
or edx, dword [esp + 0x60]
or ecx, dword [esp + 0x58]
mov eax, dword [esp + 0x4c]
mov dword [ebx + 0x1c], eax
mov dword [ebx + 0x24], edx
mov dword [ebx + 0x20], ecx
mov edx, dword [esp + 0x28]
mov ecx, dword [esp + 0x20]
mov dword [ebx + 0x2c], edx
mov dword [ebx + 0x28], ecx
movzx ecx, byte [esi]
cmp ecx, 0x2d
je 0x4ae85a
cmp cl, 0x32
je 0x4ae864
cmp cl, 0x31
jne 0x4ae870
movzx eax, word [esp + 4]
inc eax
jmp 0x4ae881
movzx eax, word [esp + 4]
sub eax, 0xffffff80
jmp 0x4ae881
movzx eax, word [esp + 4]
add eax, 0x100
jmp 0x4ae881
movzx eax, word [esp + 4]
mov edx, 2
add cl, 0xcb
shl edx, cl
add eax, edx
movzx ecx, word [esp + 0x24]
and ecx, eax
mov word [ebx + 0xc], cx
mov ebx, dword [esp + 8]
mov dword [esp + 0x10], edi
cmp byte [ebx + 8], 0x2c
jne 0x4afdcf
mov edi, dword [esp + 0x1c]
cmp byte [edi], 0xa9
jne 0x4af483
mov eax, dword [edi + 0x14]
test eax, eax
je 0x4af483
mov ecx, dword [esp + 0xc]
mov esi, dword [eax]
mov edx, dword [edi + 8]
mov ebx, dword [ecx]
mov ecx, ebx
push 0
push 1
push esi
call fcn.00431280
add esp, 0xc
test eax, eax
je 0x4af47f
mov ecx, dword [eax + 4]
mov dword [esp + 0x18], ebx
mov ebx, dword [esp + 8]
test cl, 4
je 0x4af483
mov eax, dword [eax + 8]
cmp esi, 3
mov dword [esp + 0x14], ecx
mov dl, byte [eax]
mov bh, byte [eax + 1]
mov bl, byte [eax + 2]
mov eax, dword [edi + 0x14]
mov byte [esp + 0x20], dl
jge 0x4ae99f
xor edx, edx
mov dword [esp + 4], edx
mov edx, dword [eax + 0x14]
add eax, 4
mov edi, dword [eax]
test byte [edi + 5], 0x10
lea eax, [edi + 0xc]
jne 0x4ae917
mov cl, byte [edi]
cmp cl, 0x99
jne 0x4ae9d9
mov eax, dword [esp + 0x18]
test byte [eax + 0x22], 0x80
mov eax, dword [esp + 0xc]
jne 0x4af47f
mov dword [esp + 0x34], edx
mov byte [esp + 0x44], cl
movsx edx, word [edi + 0x20]
mov ecx, dword [eax + 0xdc]
mov esi, edx
call fcn.0048daf0
xor ecx, ecx
test eax, eax
mov dword [esp + 0x28], eax
je 0x4ae980
movzx eax, word [eax + 8]
and eax, 0x3f
cmp byte [eax + 0x50cfda], 3
jne 0x4ae980
push dword [esp + 0x28]
call fcn.00425960
add esp, 4
mov ecx, eax
mov eax, dword [esp + 0xc]
mov edx, esi
cmp dx, 0x20
mov eax, dword [eax + 8]
jl 0x4aedcd
or byte [eax + 0xd3], 0x80
jmp 0x4aede6
mov ecx, dword [eax + 0x24]
cmp byte [ecx], 0x73
jne 0x4af47f
mov ecx, dword [ecx + 8]
mov dl, byte [ecx]
test dl, dl
je 0x4af47f
cmp dl, bh
je 0x4af47f
cmp dl, byte [esp + 0x20]
je 0x4af47f
cmp byte [ecx + 1], 0
je 0x4ae90d
jmp 0x4af47f
cmp cl, 0x73
jne 0x4af47f
mov byte [esp + 0x44], cl
mov ecx, dword [edi + 8]
mov dword [esp + 0x28], 0
jmp 0x4aedea
mov eax, dword [esp + 0x10]
mov ecx, dword [esp + 0x28]
mov esi, dword [esp + 0x2c]
mov dword [eax + 0x198], ecx
or ecx, esi
mov dword [eax + 0x19c], esi
mov eax, dword [esp + 0x54]
mov ecx, dword [esp + 0x30]
mov word [eax + ecx + 0xc], 0x200
jne 0x4aea59
jmp 0x4aebf0
mov dword [eax + 0x19c], 0xffffffff
mov dword [eax + 0x198], 0xffffffff
mov eax, dword [esp + 0x54]
mov ecx, dword [esp + 0x30]
mov dword [esp + 0x18], 0xffffffff
mov dword [esp + 0x20], 0xffffffff
mov word [eax + ecx + 0xc], 0x200
mov eax, dword [esp + 0x10]
mov byte [ebx + 9], 1
cmp dword [eax + 0xc], 2
jne 0x4aebf0
mov eax, dword [eax + 0x14]
xor edx, edx
jmp 0x4aea7a
mov ebx, dword [esp + 8]
mov edx, dword [esp + 0x14]
movzx ecx, word [eax + 0xc]
cmp ecx, 0x400
jne 0x4aea9d
mov ecx, dword [eax + 0x1c]
cmp dword [ecx + 0xc], edx
jle 0x4aebf0
lea esi, [edx + edx*2]
shl esi, 4
add esi, dword [ecx + 0x14]
jmp 0x4aeaa7
test edx, edx
mov esi, eax
jne 0x4aebf0
test esi, esi
je 0x4aebf0
inc edx
xor edi, edi
mov dword [esp], esi
mov dword [esp + 0x14], edx
jmp 0x4aeae0
mov eax, dword [esp]
xor ecx, ecx
mov eax, dword [eax]
mov edx, dword [eax + 0xc]
mov eax, dword [esi]
push 0xffffffffffffffff
push dword [eax + 0xc]
call fcn.0048d5b0
add esp, 8
test eax, eax
je 0x4aeb50
mov eax, dword [esp + 0x10]
inc edi
mov eax, dword [eax + 0x14]
movzx ecx, word [eax + 0x3c]
cmp ecx, 0x400
jne 0x4aeb0c
mov ecx, dword [eax + 0x4c]
cmp dword [ecx + 0xc], edi
jle 0x4aea72
mov ecx, dword [ecx + 0x14]
lea esi, [edi + edi*2]
shl esi, 4
add esi, ecx
test ecx, ecx
jne 0x4aeb17
jmp 0x4aea72
lea esi, [eax + 0x30]
test edi, edi
jne 0x4aea72
mov eax, dword [esp]
movzx eax, word [eax + 0xc]
test al, 0x3e
je 0x4aead8
movzx ecx, word [esi + 0xc]
mov edx, ecx
and edx, 0x3e
test dx, dx
je 0x4aead8
or ecx, eax
movzx ebx, cx
mov eax, ebx
and eax, 0x1a
cmp eax, ebx
je 0x4aeabb
mov eax, ebx
and eax, 0x26
cmp eax, ebx
jne 0x4aead8
jmp 0x4aeabb
mov eax, dword [esp]
xor ecx, ecx
mov eax, dword [eax]
mov edx, dword [eax + 0x10]
mov eax, dword [esi]
push 0xffffffffffffffff
push dword [eax + 0x10]
call fcn.0048d5b0
add esp, 8
test eax, eax
jne 0x4aead8
lea eax, [ebx - 1]
test bl, 0x18
mov ecx, 8
mov edx, 0x20
cmove ecx, edx
test eax, ebx
cmovne ebx, ecx
mov ecx, dword [esp]
mov edx, dword [ecx]
test edx, edx
je 0x4aead8
mov eax, dword [esp + 8]
mov eax, dword [eax]
mov eax, dword [eax]
mov ecx, dword [eax]
push 0
push 0
call fcn.0048fa30
add esp, 8
test eax, eax
je 0x4aead8
movzx edx, bx
xor ecx, ecx
mov esi, 2
shl esi, cl
inc ecx
cmp esi, edx
jne 0x4aebb9
mov esi, dword [esp + 8]
add cl, 0x34
mov edx, eax
mov byte [eax], cl
mov ecx, esi
push 3
call fcn.004ad850
add esp, 4
mov ecx, dword [esp + 0x3c]
mov edx, esi
push eax
call fcn.004adb00
add esp, 4
jmp 0x4aead8
mov eax, dword [esp + 0x18]
or eax, dword [esp + 0x20]
je 0x4ae793
mov esi, 0xffffffff
mov dword [esp + 0x34], 0
mov dword [esp + 0x28], 0
mov eax, dword [esp + 0x10]
mov edx, dword [eax + 0xc]
test edx, edx
jle 0x4aed5d
mov ebx, dword [eax + 0x14]
mov edi, esi
mov dword [esp + 0x14], esi
jmp 0x4aec4f
xor edi, edi
xor eax, eax
and edi, dword [esp + 0x18]
and eax, dword [esp + 0x20]
or eax, edi
mov edi, dword [esp + 0x14]
jne 0x4aecac
add ebx, 0x30
cmp edx, 1
mov edx, ecx
jle 0x4aed5d
and byte [ebx + 0xa], 0xbf
lea ecx, [edx - 1]
mov esi, dword [ebx + 0x14]
cmp esi, edi
je 0x4aec41
mov eax, dword [esp + 4]
mov eax, dword [eax + 0x1e4]
test eax, eax
jle 0x4aec2d
mov dword [esp], ecx
xor ecx, ecx
mov edi, dword [esp + 4]
cmp dword [edi + ecx*4 + 0x1e8], esi
je 0x4aec88
inc ecx
cmp eax, ecx
jne 0x4aec70
xor edi, edi
xor eax, eax
jmp 0x4aeca7
xor eax, eax
mov edi, 1
shld eax, edi, cl
mov edi, 1
shl edi, cl
test cl, 0x20
mov ecx, 0
cmovne eax, edi
cmovne edi, ecx
mov ecx, dword [esp]
jmp 0x4aec31
test edx, edx
jle 0x4aed5d
mov eax, dword [ebx]
mov edx, dword [ebx + 0x1c]
mov eax, dword [eax + 0xc]
mov dword [esp + 0x2c], edx
mov dword [esp + 0x24], eax
mov eax, esi
cmp eax, esi
je 0x4aecd0
and byte [ebx + 0xa], 0xbf
jmp 0x4aed2d
cmp dword [ebx + 0x1c], edx
mov dword [esp + 0x28], 0
jne 0x4aed46
cmp edx, 0xfffffffe
mov dword [esp], ecx
jne 0x4aed00
mov eax, dword [ebx]
mov ecx, dword [esp + 0x5c]
mov edx, dword [eax + 0xc]
push 0xffffffffffffffff
push dword [esp + 0x28]
call fcn.0048d5b0
add esp, 8
test eax, eax
jne 0x4aed46
mov edi, dword [ebx]
mov ecx, dword [edi + 0x10]
call fcn.0048ce50
mov ecx, dword [edi + 0xc]
mov byte [esp + 0x14], al
call fcn.0048ce50
mov cl, byte [esp + 0x14]
test cl, cl
je 0x4aed22
cmp cl, al
jne 0x4aed46
or byte [ebx + 0xa], 0x40
mov ecx, dword [esp]
mov edx, dword [esp + 0x2c]
test ecx, ecx
jle 0x4aed3e
mov eax, dword [ebx + 0x44]
dec ecx
add ebx, 0x30
cmp eax, esi
jne 0x4aecca
jmp 0x4aecd0
mov dword [esp + 0x28], 1
mov eax, dword [esp + 0x28]
mov ecx, dword [esp + 0x34]
or eax, ecx
lea ecx, [ecx + 1]
mov dword [esp + 0x34], ecx
je 0x4aec13
cmp dword [esp + 0x28], 0
mov ebx, dword [esp + 8]
je 0x4ae793
mov eax, dword [esp + 0x10]
mov edi, dword [eax + 0xc]
test edi, edi
jle 0x4aef98
mov ebx, dword [eax + 0x14]
inc edi
xor edx, edx
xor esi, esi
jmp 0x4aedba
mov ecx, dword [esp + 0x44]
push 0
push 0
call fcn.0048fa30
add esp, 8
mov ecx, dword [esp + 4]
mov edx, esi
mov ecx, dword [ecx]
push eax
call fcn.00477e20
add esp, 4
mov ecx, dword [ebx]
mov esi, eax
mov edx, dword [ecx + 0xc]
dec edi
add ebx, 0x30
cmp edi, 1
jle 0x4aef7b
test byte [ebx + 0xa], 0x40
je 0x4aedad
mov eax, dword [ebx]
mov edx, dword [eax + 0x10]
test edx, edx
jne 0x4aed85
xor eax, eax
jmp 0x4aed95
dec dl
mov dword [esp], ecx
mov esi, edx
mov edx, 1
mov ecx, esi
shl edx, cl
mov ecx, dword [esp]
or dword [eax + 0xd0], edx
mov edx, dword [esp + 0x34]
mov ah, byte [esp + 0x20]
test ecx, ecx
je 0x4aee79
mov al, byte [ecx]
mov dword [esp + 0x2c], 0
cmp al, bl
je 0x4aee81
cmp al, bh
je 0x4aee81
test al, al
mov dword [esp], ecx
je 0x4aee81
cmp al, ah
mov ecx, 0
mov esi, 0
mov dword [esp + 0x34], edx
je 0x4aee85
xor esi, esi
mov ecx, eax
cmp cl, byte [esp + 4]
lea edx, [esi + 1]
jne 0x4aee3f
mov ecx, dword [esp]
cmp byte [ecx + esi + 1], 0
je 0x4aee42
add esi, 2
mov edx, esi
jmp 0x4aee42
mov ecx, dword [esp]
mov esi, edx
movzx ecx, byte [ecx + esi]
cmp cl, bl
je 0x4aee58
cmp cl, bh
je 0x4aee58
test cl, cl
je 0x4aee58
cmp cl, ah
jne 0x4aee25
test esi, esi
je 0x4aee79
mov edx, dword [esp]
cmp byte [esi + edx - 1], 0xff
je 0x4aee79
cmp al, byte [esp + 4]
jne 0x4af33c
cmp esi, 2
jge 0x4af33c
mov dword [esp + 0x2c], 0
xor ecx, ecx
xor esi, esi
mov edx, dword [esp + 0x28]
mov ebx, dword [esp + 8]
mov edi, dword [esp + 0x1c]
mov dword [esp + 0x24], ecx
test edx, edx
je 0x4aeebc
test byte [edx + 9], 0x24
jne 0x4aeea5
cmp dword [edx + 0x18], 0
je 0x4aeeb0
mov ecx, edx
call fcn.0044b390
mov edx, dword [esp + 0x28]
mov ecx, dword [edx + 0x20]
call fcn.004352c0
mov ebx, dword [esp + 8]
test esi, esi
je 0x4af483
mov eax, dword [edi + 0x14]
mov ebx, dword [esp + 0x2c]
mov eax, dword [eax + 0x14]
test ebx, ebx
mov dword [esp], eax
je 0x4aeeed
mov ecx, dword [esp + 0x40]
mov edx, ebx
push 0
push 0
call fcn.0048fa30
add esp, 8
mov dword [esp + 4], eax
jmp 0x4aeef5
mov dword [esp + 4], 0
mov ecx, dword [esp + 0x10]
test byte [esp + 0x14], 8
mov edi, dword [esp + 4]
jne 0x4aef4f
mov eax, dword [esp + 0xc]
mov eax, dword [eax]
cmp byte [eax + 0x51], 0
jne 0x4aef4f
or byte [ecx + 0xb], 4
mov ecx, dword [ebx + 8]
mov dl, byte [ecx]
test dl, dl
je 0x4aef4f
xor eax, eax
movzx esi, dl
mov dh, byte [esi + 0x50d0f3]
not dh
or dh, 0xdf
and dh, dl
mov byte [ecx], dh
movzx ecx, byte [esi + 0x50ce7b]
mov edx, dword [edi + 8]
mov byte [edx + eax], cl
mov ecx, dword [ebx + 8]
movzx edx, byte [ecx + eax + 1]
lea ecx, [ecx + eax + 1]
inc eax
test dl, dl
jne 0x4aef1f
mov eax, dword [esp + 0x40]
mov edi, dword [esp]
cmp byte [eax + 0x51], 0
jne 0x4aefec
mov eax, dword [esp + 4]
mov esi, dword [eax + 8]
test esi, esi
je 0x4aefbe
push esi
call sub.api_ms_win_crt_string_l1_1_0.dll_strlen
add esp, 4
and eax, 0x3fffffff
jmp 0x4aefc0
test edx, edx
je 0x4af29a
mov ecx, dword [esp + 0x44]
push 0
push 0
call fcn.0048fa30
add esp, 8
jmp 0x4af29c
mov ecx, dword [esp + 0x5c]
mov edi, ebx
mov edx, 0x31
push 0
push 0
call fcn.00472b00
add esp, 8
test eax, eax
je 0x4ae793
xor esi, esi
jmp 0x4af2b8
xor eax, eax
mov ecx, dword [esp + 0x14]
test cl, 8
mov cl, byte [eax + esi - 1]
jne 0x4aefe6
xor ebx, ebx
movzx edx, cl
cmp cl, 0x40
mov ecx, dword [esp + 0x24]
cmove ecx, ebx
mov dword [esp + 0x24], ecx
mov cl, byte [edx + 0x50ce7b]
inc cl
mov byte [esi + eax - 1], cl
mov eax, dword [esp + 0x14]
mov ecx, str.NOCASE
mov esi, str.BINARY
test al, 8
cmove esi, ecx
test edi, edi
je 0x4af019
mov ecx, dword [esp + 0x40]
mov edx, edi
push 0
push 0
call fcn.0048fa30
add esp, 8
mov ebx, eax
jmp 0x4af01b
xor ebx, ebx
mov eax, dword [esp + 0xc]
mov edx, 0x3b
mov ecx, dword [eax]
push 0
call fcn.00435490
add esp, 4
test eax, eax
je 0x4af0c0
mov ecx, eax
mov dword [eax], 0
mov dword [eax + 0x20], 0
mov dword [eax + 4], 0
mov dword [eax + 0xc], 0
mov dword [eax + 0x14], 0
mov dword [eax + 0x10], 0
mov dword [eax + 0x1c], 0
mov dword [eax + 0x18], 0
mov dword [eax + 0x24], 0
mov dword [eax + 0x2c], 0
mov dword [eax + 0x28], 0
mov dword [eax + 0x30], 0
mov byte [eax], 0x6f
mov word [eax + 0x22], 0xffff
movzx edx, word [esi + 4]
add ecx, 0x34
mov dword [eax + 8], ecx
mov ecx, dword [esi]
mov word [eax + 0x38], dx
mov dword [eax + 0x34], ecx
mov byte [eax + 0x3a], 0
mov dword [eax + 0x18], 1
mov dword [eax + 0xc], ebx
mov ebx, eax
mov dword [eax + 4], 0x1100
mov ecx, dword [esp + 0xc]
mov edx, 0x39
push dword [esp + 0x2c]
push ebx
call fcn.00472b00
add esp, 8
test eax, eax
je 0x4af0ef
mov edx, dword [esp + 0x1c]
mov ecx, dword [edx + 4]
and ecx, 1
or dword [eax + 4], ecx
movzx ecx, word [edx + 0x24]
mov word [eax + 0x24], cx
mov ebx, dword [esp + 8]
mov edx, eax
mov ecx, ebx
push 0x103
call fcn.004ad850
add esp, 4
mov ecx, dword [esp + 0x3c]
mov edx, ebx
mov dword [esp + 0x18], eax
push eax
call fcn.004adb00
add esp, 4
test edi, edi
je 0x4af131
mov ecx, dword [esp + 0x40]
mov edx, edi
push 0
push 0
call fcn.0048fa30
add esp, 8
mov edi, eax
jmp 0x4af133
xor edi, edi
mov eax, dword [esp + 0xc]
mov edx, 0x3b
mov ecx, dword [eax]
push 0
call fcn.00435490
add esp, 4
test eax, eax
je 0x4af1d8
mov ebx, dword [esi]
movzx edx, word [esi + 4]
mov ecx, eax
mov dword [eax], 0
mov dword [eax + 0x20], 0
mov dword [eax + 4], 0
mov dword [eax + 0xc], 0
mov dword [eax + 0x14], 0
mov dword [eax + 0x10], 0
mov dword [eax + 0x1c], 0
mov dword [eax + 0x18], 0
mov dword [eax + 0x24], 0
mov dword [eax + 0x2c], 0
mov dword [eax + 0x28], 0
mov dword [eax + 0x30], 0
mov byte [eax], 0x6f
mov word [eax + 0x22], 0xffff
add ecx, 0x34
mov dword [eax + 8], ecx
mov dword [eax + 0x34], ebx
mov word [eax + 0x38], dx
mov byte [eax + 0x3a], 0
mov dword [eax + 0x18], 1
mov dword [eax + 0xc], edi
mov edi, eax
mov dword [eax + 4], 0x1100
mov ecx, dword [esp + 0xc]
mov edx, 0x38
push dword [esp + 4]
push edi
call fcn.00472b00
add esp, 8
mov edx, dword [esp + 0x1c]
test eax, eax
je 0x4af207
mov ecx, dword [edx + 4]
and ecx, 1
or dword [eax + 4], ecx
movzx ecx, word [edx + 0x24]
mov word [eax + 0x24], cx
mov ebx, dword [esp + 8]
mov edx, eax
mov ecx, ebx
push 0x103
call fcn.004ad850
add esp, 4
mov ecx, dword [esp + 0x3c]
mov esi, eax
mov edx, ebx
push eax
call fcn.004adb00
add esp, 4
mov eax, dword [ebx + 0x14]
mov ecx, dword [esp + 0x30]
cmp dword [esp + 0x24], 0
lea ecx, [eax + ecx]
mov dword [esp + 0x10], ecx
je 0x4af483
mov ecx, dword [esp + 0x18]
mov edx, dword [ebp + 8]
shl esi, 4
shl ecx, 4
lea ecx, [ecx + ecx*2]
mov dword [eax + ecx + 0x10], edx
shl edx, 4
mov eax, dword [ebx + 0x14]
lea edx, [edx + edx*2]
movzx edi, word [eax + edx + 8]
mov word [eax + ecx + 8], di
lea ecx, [esi + esi*2]
mov esi, dword [ebp + 8]
mov eax, dword [ebx + 0x14]
inc byte [eax + edx + 0xe]
mov eax, dword [ebx + 0x14]
mov dword [eax + ecx + 0x10], esi
mov eax, dword [ebx + 0x14]
movzx esi, word [eax + edx + 8]
mov word [eax + ecx + 8], si
mov eax, dword [ebx + 0x14]
inc byte [eax + edx + 0xe]
jmp 0x4af483
xor eax, eax
mov edi, dword [esp + 8]
mov ecx, dword [esp + 0x5c]
mov edx, 0x31
push 0
push eax
call fcn.00472b00
add esp, 8
test eax, eax
je 0x4af320
mov edx, dword [esp + 0x64]
mov ebx, edi
mov ecx, dword [edx + 4]
and ecx, 1
or dword [eax + 4], ecx
movzx ecx, word [edx + 0x24]
mov edx, eax
mov word [eax + 0x24], cx
mov dword [eax + 0x14], esi
mov ecx, edi
push 3
call fcn.004ad850
add esp, 4
mov ecx, dword [esp + 0x3c]
mov esi, eax
mov edx, edi
push eax
call fcn.004adb00
add esp, 4
mov eax, dword [edi + 0x14]
mov edx, dword [ebp + 8]
shl esi, 4
lea ecx, [esi + esi*2]
mov dword [eax + ecx + 0x10], edx
shl edx, 4
mov eax, dword [edi + 0x14]
lea edx, [edx + edx*2]
movzx esi, word [eax + edx + 8]
mov word [eax + ecx + 8], si
mov eax, dword [edi + 0x14]
inc byte [eax + edx + 0xe]
jmp 0x4ae793
test esi, esi
mov ebx, edi
je 0x4ae793
mov ecx, dword [esp + 0x44]
mov edx, esi
call fcn.0046a010
mov ebx, edi
jmp 0x4ae793
cmp cl, ah
mov dword [esp + 0x24], 0
jne 0x4af359
mov ecx, dword [esp]
xor eax, eax
cmp byte [esi + ecx + 1], 0
sete al
mov dword [esp + 0x24], eax
mov ecx, dword [esp + 0x18]
mov edx, 0x73
push dword [esp]
call fcn.00478110
add esp, 4
test eax, eax
mov dword [esp + 0x2c], eax
je 0x4af825
mov eax, dword [esp + 0x2c]
test esi, esi
mov eax, dword [eax + 8]
mov dword [esp + 0x20], eax
mov byte [eax + esi], 0
jle 0x4af3cd
movzx eax, byte [esp + 4]
mov ebx, dword [esp + 0x20]
xor ecx, ecx
mov dword [esp + 4], 0
mov dword [esp + 0x54], eax
movsx eax, byte [ebx + ecx]
xor edx, edx
cmp eax, dword [esp + 0x54]
sete dl
lea eax, [ecx + edx]
lea ecx, [ecx + edx + 1]
mov edx, dword [esp + 4]
movzx eax, byte [ebx + eax]
mov byte [ebx + edx], al
inc edx
cmp ecx, esi
mov dword [esp + 4], edx
jl 0x4af3a3
jmp 0x4af3d5
mov dword [esp + 4], 0
mov esi, dword [esp + 0x20]
mov eax, dword [esp + 4]
mov ecx, dword [esp + 0x34]
mov byte [esi + eax], 0
cmp byte [ecx], 0xa4
jne 0x4af408
mov ecx, dword [esp + 0x34]
call fcn.0048ce50
cmp al, 0x42
jne 0x4af408
mov eax, dword [esp + 0x34]
mov eax, dword [eax + 0x2c]
cmp dword [eax + 0x38], 0
je 0x4af825
mov dword [esp + 0x4c], 0xffffffff
mov dword [esp + 0x48], 0xffffffff
lea edx, [esp + 0x48]
mov ecx, esi
push 1
push dword [esp + 8]
call fcn.0044c170
add esp, 8
test eax, eax
jg 0x4af469
cmp dword [esp + 4], 1
jne 0x4af440
mov eax, dword [esp + 0x20]
cmp byte [eax], 0x2d
je 0x4af469
mov esi, dword [esp + 0x20]
mov ebx, dword [esp + 4]
lea edx, [esp + 0x48]
inc byte [ebx + esi - 1]
mov ecx, esi
push 1
push ebx
call fcn.0044c170
add esp, 8
dec byte [ebx + esi - 1]
test eax, eax
jle 0x4af825
mov ecx, dword [esp + 0x18]
mov edx, dword [esp + 0x2c]
call fcn.00469b50
mov ecx, dword [esp + 0x28]
call fcn.00425e40
mov ebx, dword [esp + 8]
cmp byte [ebx + 8], 0x2c
jne 0x4afdcf
mov edi, dword [esp + 0x1c]
mov al, byte [edi]
mov ecx, eax
add cl, 0xcd
cmp cl, 2
jb 0x4af4ec
cmp al, 0xa8
je 0x4af4ec
cmp al, 0xa9
jne 0x4af95d
mov esi, dword [edi + 0x14]
test esi, esi
je 0x4af949
cmp dword [esi], 2
jne 0x4af949
mov ebx, dword [esi + 0x14]
cmp byte [ebx], 0xa4
jne 0x4af8d5
mov eax, dword [ebx + 0x2c]
test eax, eax
je 0x4af8d5
cmp dword [eax + 0x38], 0
je 0x4af8d5
mov eax, dword [esp + 0x1c]
xor ecx, ecx
mov edi, dword [eax + 8]
jmp 0x4af570
mov ebx, dword [edi + 0xc]
xor edx, edx
mov ecx, dword [edi + 0x10]
mov dword [esp], 0
cmp byte [ebx], 0xa4
jne 0x4af51c
mov esi, dword [ebx + 0x2c]
mov dword [esp], 0
test esi, esi
je 0x4af51c
xor edx, edx
cmp dword [esi + 0x38], 0
setne dl
mov dword [esp], edx
xor edx, edx
test ecx, ecx
je 0x4af548
cmp byte [ecx], 0xa4
jne 0x4af546
mov esi, dword [ecx + 0x2c]
test esi, esi
je 0x4af546
xor edx, edx
cmp dword [esi + 0x38], 0
mov edi, ecx
setne dl
cmove edi, ebx
cmove ebx, ecx
add dword [esp], edx
mov edx, ebx
mov ebx, edi
jmp 0x4af548
mov edx, ecx
cmp al, 0xa8
je 0x4af58d
cmp al, 0x34
je 0x4af595
cmp al, 0x33
jne 0x4af59d
mov al, 0x46
mov dword [esp + 0x14], eax
jmp 0x4af5a5
movzx edx, byte [edx + 0x50ce7b]
cmp dl, byte [eax + 0x50ce7b]
jne 0x4af7bf
inc ecx
movzx edx, byte [edi + ecx]
movzx eax, byte [ecx + str.match]
cmp dl, al
jne 0x4af55c
test dl, dl
jne 0x4af56f
mov eax, 0x514c64
jmp 0x4af8c2
mov al, 0x45
mov dword [esp + 0x14], eax
jmp 0x4af5a5
mov al, 0x44
mov dword [esp + 0x14], eax
jmp 0x4af5a5
mov dword [esp + 0x14], 0
mov eax, dword [esp]
test eax, eax
jle 0x4af949
inc eax
jmp 0x4af656
mov edi, dword [esp + 8]
mov edx, ebx
mov ecx, edi
push 3
call fcn.004ad850
add esp, 4
mov ecx, dword [edi + 0x14]
shl eax, 4
mov edx, dword [esp + 0x10]
mov ebx, dword [ebp + 8]
lea eax, [eax + eax*2]
mov dword [ecx + eax + 0x24], esi
mov esi, dword [esp + 4]
mov dword [ecx + eax + 0x20], edx
mov edx, dword [esi + 0x1c]
mov dword [ecx + eax + 0x14], edx
movsx edx, word [esi + 0x20]
mov dword [ecx + eax + 0x1c], edx
mov edx, dword [esp + 0x14]
mov word [ecx + eax + 0xc], 0x40
mov byte [ecx + eax + 0xf], dl
mov edx, dword [edi + 0x14]
mov dword [edx + eax + 0x10], ebx
shl ebx, 4
mov edx, dword [edi + 0x14]
lea ebx, [ebx + ebx*2]
movzx esi, word [edx + ebx + 8]
mov word [edx + eax + 8], si
mov edx, dword [edi + 0x14]
inc byte [edx + ebx + 0xe]
mov edx, dword [edi + 0x14]
or word [edx + ebx + 0xa], 8
movsd xmm0, qword [edx + ebx + 0x28]
movsd qword [ecx + eax + 0x28], xmm0
lea ecx, [edx + ebx]
mov edx, dword [esp + 0x18]
mov dword [esp + 0x10], ecx
mov eax, dword [esp]
mov ebx, edx
mov edx, dword [esp + 4]
dec eax
cmp eax, 1
jle 0x4af949
mov dword [esp], eax
mov eax, ebx
xor ebx, ebx
test edx, edx
mov dword [esp + 4], eax
je 0x4af68f
mov ecx, dword [esp + 0x38]
mov edi, edx
call fcn.004b0160
mov ecx, eax
mov eax, dword [esp + 4]
mov esi, edx
test eax, eax
je 0x4af699
mov ebx, ecx
mov ecx, dword [esp + 0x38]
mov edx, eax
call fcn.004b0160
mov ecx, ebx
mov ebx, edx
jmp 0x4af69b
mov edi, edx
xor ecx, ecx
xor esi, esi
test eax, eax
jne 0x4af67c
xor eax, eax
and eax, ecx
and ebx, esi
mov edx, edi
mov edi, esi
or ebx, eax
jne 0x4af643
mov dword [esp + 0x10], ecx
mov ecx, dword [esp + 0x40]
test edx, edx
mov dword [esp + 0x18], edx
je 0x4af6c7
push 0
push 0
call fcn.0048fa30
add esp, 8
mov edi, eax
jmp 0x4af6c9
xor edi, edi
mov eax, dword [esp + 0xc]
mov edx, 0x34
mov ecx, dword [eax]
push 0
call fcn.00435490
add esp, 4
mov ebx, eax
test eax, eax
je 0x4af7a5
test edi, edi
mov dword [ebx], 0
mov dword [ebx + 0x20], 0
mov dword [ebx + 4], 0
mov dword [ebx + 0xc], 0
mov dword [ebx + 8], 0
mov dword [ebx + 0x14], 0
mov dword [ebx + 0x10], 0
mov dword [ebx + 0x1c], 0
mov dword [ebx + 0x18], 0
mov dword [ebx + 0x24], 0
mov dword [ebx + 0x2c], 0
mov dword [ebx + 0x28], 0
mov dword [ebx + 0x30], 0
mov byte [ebx], 0x2e
mov word [ebx + 0x22], 0xffff
je 0x4af75f
mov dword [ebx + 0x10], edi
mov ecx, 0x200104
mov eax, dword [edi + 4]
and eax, ecx
mov dword [ebx + 4], eax
mov ecx, ebx
call fcn.004c5fa0
mov eax, dword [esp + 0xc]
mov eax, dword [eax]
mov eax, dword [eax + 0x78]
cmp eax, dword [ebx + 0x18]
jge 0x4af786
push eax
push str.Expression_tree_is_too_large__maximum_depth__d_
push dword [esp + 0x14]
call fcn.0042af90
add esp, 0xc
mov eax, dword [esp + 0x1c]
test byte [eax + 4], 1
je 0x4af5b6
or byte [ebx + 4], 1
movzx eax, word [eax + 0x24]
mov word [ebx + 0x24], ax
jmp 0x4af5b6
test edi, edi
je 0x4af5b6
mov eax, dword [esp + 0xc]
mov edx, edi
mov ecx, dword [eax]
call fcn.00469b50
jmp 0x4af5b6
xor ecx, ecx
jmp 0x4af7d3
movzx edx, byte [edx + 0x50ce7b]
cmp dl, byte [eax + 0x50ce7b]
jne 0x4af7f0
inc ecx
movzx edx, byte [edi + ecx]
movzx eax, byte [ecx + str.glob]
cmp dl, al
jne 0x4af7c3
test dl, dl
jne 0x4af7d2
mov eax, 0x514c6c
jmp 0x4af8c2
xor ecx, ecx
jmp 0x4af808
movzx edx, byte [edx + 0x50ce7b]
cmp dl, byte [eax + 0x50ce7b]
jne 0x4af896
inc ecx
movzx edx, byte [edi + ecx]
movzx eax, byte [ecx + str.like]
cmp dl, al
jne 0x4af7f4
test dl, dl
jne 0x4af807
mov eax, 0x514c74
jmp 0x4af8c2
cmp byte [esp + 0x44], 0x99
jne 0x4afe53
mov eax, dword [edi + 0x20]
mov edx, 1
mov ecx, eax
dec cl
shl edx, cl
cmp ax, 0x1f
mov eax, 0x80000000
cmovle eax, edx
mov edx, dword [esp + 0xc]
mov ebx, dword [edx + 8]
or dword [ebx + 0xd0], eax
cmp dword [esp + 0x24], 0
je 0x4afdeb
mov eax, dword [edi + 8]
cmp byte [eax + 1], 0
je 0x4afe53
mov eax, dword [esp + 0xc]
mov al, byte [eax + 0x13]
test al, al
je 0x4afdf5
mov ecx, dword [esp + 0xc]
dec al
mov byte [ecx + 0x13], al
movzx eax, al
mov esi, dword [ecx + eax*4 + 0x94]
jmp 0x4afe00
xor ecx, ecx
jmp 0x4af8aa
movzx edx, byte [edx + 0x50ce7b]
cmp dl, byte [eax + 0x50ce7b]
jne 0x4af8d5
inc ecx
movzx edx, byte [edi + ecx]
movzx eax, byte [ecx + str.regexp]
cmp dl, al
jne 0x4af89a
test dl, dl
jne 0x4af8a9
mov eax, 0x514c7c
mov al, byte [eax]
mov edx, dword [esi + 4]
mov dword [esp + 0x14], eax
mov eax, 1
jmp 0x4af5b0
mov ebx, dword [esi + 4]
cmp byte [ebx], 0xa4
jne 0x4af949
mov eax, dword [ebx + 0x2c]
test eax, eax
je 0x4af949
cmp dword [eax + 0x38], 0
je 0x4af949
mov edx, dword [esp + 0x40]
add eax, 0x40
mov dword [esp + 0x48], 0xffffffff
mov dword [esp + 0x68], 0xffffffff
mov ecx, dword [eax]
cmp dword [ecx], edx
lea eax, [ecx + 0x18]
jne 0x4af901
mov eax, dword [ecx + 8]
mov ecx, dword [eax]
mov ecx, dword [ecx + 0x48]
test ecx, ecx
je 0x4af949
lea edx, [esp + 0x68]
lea edi, [esp + 0x48]
push edx
push edi
mov edx, dword [esp + 0x24]
push dword [edx + 8]
push 2
push eax
call ecx
add esp, 0x14
cmp eax, 0x96
mov ecx, eax
mov dword [esp + 0x14], eax
jl 0x4af949
mov edx, dword [esi + 0x14]
mov eax, 1
jmp 0x4af5b0
mov ebx, dword [esp + 8]
cmp byte [ebx + 8], 0x2c
jne 0x4afdcf
mov edi, dword [esp + 0x1c]
mov al, byte [edi]
cmp al, 0x35
je 0x4af969
cmp al, 0x2d
jne 0x4afcd4
mov edi, dword [edi + 0xc]
mov cl, byte [edi]
cmp cl, 0xad
mov edx, ecx
jne 0x4af978
mov dl, byte [edi + 2]
cmp dl, 0x88
je 0x4af98b
cmp dl, 0xae
jne 0x4afcd4
lea edx, [edi + 0x14]
jmp 0x4af991
mov edx, dword [edi + 0x14]
add edx, 0x1c
mov edx, dword [edx]
mov edx, dword [edx]
cmp edx, 2
mov dword [esp + 4], edx
jl 0x4afcd4
mov edx, dword [esp + 0x1c]
mov edx, dword [edx + 0x10]
mov ah, byte [edx]
cmp ah, 0xad
jne 0x4af9b3
mov ah, byte [edx + 2]
cmp ah, 0x88
je 0x4af9c7
mov esi, 1
cmp ah, 0xae
jne 0x4af9d1
lea esi, [edx + 0x14]
jmp 0x4af9cd
mov esi, dword [edx + 0x14]
add esi, 0x1c
mov esi, dword [esi]
mov esi, dword [esi]
cmp esi, dword [esp + 4]
jne 0x4afcd4
test byte [edi + 5], 8
je 0x4af9eb
test byte [edx + 5], 8
jne 0x4afcd4
xor ebx, ebx
mov eax, dword [esp + 0xc]
cmp cl, 0xae
mov dword [esp + 0x38], ebx
je 0x4afab7
cmp cl, 0x88
jne 0x4afacf
mov ecx, dword [eax]
mov edx, 0x34
push 0
mov ebx, eax
call fcn.00435490
add esp, 4
test eax, eax
je 0x4afb01
mov ecx, eax
mov dword [eax], 0
mov esi, eax
mov dword [eax + 0x20], 0
mov dword [eax + 4], 0
mov dword [eax + 0xc], 0
mov dword [eax + 8], 0
mov dword [eax + 0x14], 0
mov dword [eax + 0x10], 0
mov dword [eax + 0x1c], 0
mov dword [eax + 0x18], 0
mov dword [eax + 0x24], 0
mov dword [eax + 0x2c], 0
mov dword [eax + 0x28], 0
mov dword [eax + 0x30], 0
mov byte [eax], 0xaf
mov word [eax + 0x22], 0xffff
call fcn.004c5fa0
mov eax, dword [ebx]
mov eax, dword [eax + 0x78]
cmp eax, dword [esi + 0x18]
jge 0x4afaaa
push eax
push str.Expression_tree_is_too_large__maximum_depth__d_
push dword [esp + 0x14]
call fcn.0042af90
add esp, 0xc
mov ebx, dword [esp + 0x38]
mov word [esi + 0x20], bx
mov dword [esi + 0xc], edi
jmp 0x4afb07
mov eax, dword [edi + 0x14]
mov ecx, ebx
shl ecx, 4
mov edi, dword [eax + ecx + 4]
mov eax, dword [esp + 0xc]
test edi, edi
je 0x4afc31
mov ecx, dword [eax]
mov edx, edi
push 0
push 0
call fcn.0048fa30
add esp, 8
mov esi, eax
mov eax, dword [esp + 0xc]
mov eax, dword [eax + 0x110]
nop dword [eax + eax]
test eax, eax
je 0x4afb07
cmp dword [eax], edi
je 0x4afafd
mov eax, dword [eax + 0xc]
jmp 0x4afaf0
mov dword [eax], esi
jmp 0x4afb07
mov ebx, dword [esp + 0x38]
xor esi, esi
mov eax, dword [esp + 0x1c]
mov edi, dword [eax + 0x10]
mov al, byte [edi]
cmp al, 0xae
je 0x4afbd6
cmp al, 0x88
jne 0x4afbfa
mov eax, dword [esp + 0xc]
mov edx, 0x34
mov ecx, dword [eax]
push 0
call fcn.00435490
add esp, 4
test eax, eax
je 0x4afc40
mov ecx, eax
mov dword [eax], 0
mov ebx, eax
mov dword [eax + 0x20], 0
mov dword [eax + 4], 0
mov dword [eax + 0xc], 0
mov dword [eax + 8], 0
mov dword [eax + 0x14], 0
mov dword [eax + 0x10], 0
mov dword [eax + 0x1c], 0
mov dword [eax + 0x18], 0
mov dword [eax + 0x24], 0
mov dword [eax + 0x2c], 0
mov dword [eax + 0x28], 0
mov dword [eax + 0x30], 0
mov byte [eax], 0xaf
mov word [eax + 0x22], 0xffff
call fcn.004c5fa0
mov eax, dword [esp + 0xc]
mov eax, dword [eax]
mov eax, dword [eax + 0x78]
cmp eax, dword [ebx + 0x18]
jge 0x4afbc9
push eax
push str.Expression_tree_is_too_large__maximum_depth__d_
push dword [esp + 0x14]
call fcn.0042af90
add esp, 0xc
mov eax, dword [esp + 0x38]
mov word [ebx + 0x20], ax
mov dword [ebx + 0xc], edi
jmp 0x4afc42
mov eax, dword [edi + 0x14]
mov ecx, ebx
shl ecx, 4
mov edi, dword [eax + ecx + 4]
mov eax, dword [esp + 0xc]
test edi, edi
jne 0x4afbfe
mov eax, dword [eax + 0x110]
xor edi, edi
xor ebx, ebx
test eax, eax
jne 0x4afc20
jmp 0x4afc42
mov eax, dword [esp + 0xc]
mov ecx, dword [eax]
mov edx, edi
push 0
push 0
call fcn.0048fa30
add esp, 8
mov ebx, eax
mov eax, dword [esp + 0xc]
mov eax, dword [eax + 0x110]
test eax, eax
je 0x4afc42
nop
cmp dword [eax], edi
je 0x4afc2d
mov eax, dword [eax + 0xc]
test eax, eax
jne 0x4afc20
jmp 0x4afc42
mov dword [eax], ebx
jmp 0x4afc42
mov eax, dword [eax + 0x110]
xor edi, edi
xor esi, esi
jmp 0x4afaf0
xor ebx, ebx
mov edi, dword [esp + 0x1c]
mov ecx, dword [esp + 0xc]
movzx edx, byte [edi]
push ebx
push esi
call fcn.00472b00
add esp, 8
test eax, eax
je 0x4afc6c
mov ecx, dword [edi + 4]
and ecx, 1
or dword [eax + 4], ecx
movzx ecx, word [edi + 0x24]
mov word [eax + 0x24], cx
mov esi, dword [esp + 8]
mov edx, eax
mov ecx, esi
push 1
call fcn.004ad850
add esp, 4
mov ecx, dword [esp + 0x3c]
mov edx, esi
push eax
call fcn.004adb00
add esp, 4
mov ebx, dword [esp + 0x38]
inc ebx
cmp ebx, dword [esp + 4]
je 0x4afca2
mov edi, dword [edi + 0xc]
mov cl, byte [edi]
jmp 0x4af9ed
mov eax, dword [esi + 0x14]
mov ecx, dword [esp + 0x30]
mov ebx, esi
or word [eax + ecx + 0xa], 6
mov word [eax + ecx + 0xc], 0
mov dword [esp + 0x10], eax
cmp byte [esi + 8], 0x2c
jne 0x4afdcf
mov eax, dword [esp + 0x30]
add dword [esp + 0x10], eax
mov eax, dword [esp + 0x1c]
mov al, byte [eax]
mov ebx, dword [esp + 8]
cmp al, 0x31
jne 0x4afdcf
mov eax, dword [esp + 0x10]
cmp dword [eax + 0x18], 0
jne 0x4afdcf
mov eax, dword [esp + 0x1c]
mov eax, dword [eax + 0xc]
cmp byte [eax], 0xae
jne 0x4afdcf
mov ecx, dword [esp + 0x1c]
mov ecx, dword [ecx + 0x14]
cmp dword [ecx + 0x34], 0
jne 0x4afdcf
cmp dword [ecx + 0x44], 0
jne 0x4afdcf
mov edx, dword [ebp + 8]
mov ebx, dword [esp + 8]
mov edi, dword [esp + 0x1c]
xor esi, esi
mov cl, 0xae
shl edx, 4
lea edx, [edx + edx*2]
mov dword [esp + 0x38], edx
cmp cl, 0xad
jne 0x4afda4
jmp 0x4afda1
mov ecx, ebx
mov edx, edi
push 2
call fcn.004ad850
add esp, 4
mov ecx, dword [ebx + 0x14]
mov edx, eax
inc esi
shl edx, 4
lea ebx, [edx + edx*2]
mov edx, dword [esp + 8]
mov dword [ecx + ebx + 0x18], esi
mov ecx, dword [esp + 0x3c]
push eax
call fcn.004adb00
add esp, 4
mov eax, dword [esp + 8]
mov ecx, dword [ebp + 8]
mov edx, dword [esp + 0x38]
mov eax, dword [eax + 0x14]
mov dword [eax + ebx + 0x10], ecx
mov eax, dword [esp + 8]
mov eax, dword [eax + 0x14]
movzx ecx, word [eax + edx + 8]
mov word [eax + ebx + 8], cx
mov ebx, dword [esp + 8]
mov eax, dword [ebx + 0x14]
inc byte [eax + edx + 0xe]
mov eax, dword [edi + 0xc]
movzx ecx, byte [eax]
cmp cl, 0xad
jne 0x4afda4
mov cl, byte [eax + 2]
cmp cl, 0x88
je 0x4afdb3
cmp cl, 0xae
jne 0x4afdc2
add eax, 0x14
jmp 0x4afdb9
mov eax, dword [eax + 0x14]
add eax, 0x1c
mov eax, dword [eax]
cmp esi, dword [eax]
setl al
jmp 0x4afdc7
test esi, esi
setle al
test al, al
jne 0x4afd39
mov eax, dword [ebx + 0x14]
mov ecx, dword [esp + 0x58]
mov edx, dword [esp + 0x30]
or dword [eax + edx + 0x20], ecx
mov ecx, dword [esp + 0x60]
or dword [eax + edx + 0x24], ecx
jmp 0x4adb1e
mov esi, dword [esp]
xor ecx, ecx
jmp 0x4aee85
mov eax, dword [esp + 0xc]
mov esi, dword [eax + 0x2c]
inc esi
mov dword [eax + 0x2c], esi
mov ecx, dword [esp + 0xc]
mov edx, edi
push esi
call fcn.00486890
add esp, 4
mov ecx, dword [ebx]
mov eax, 0x51ea94
cmp byte [ecx + 0x51], 0
jne 0x4afe29
mov ecx, dword [ebx + 0x6c]
mov eax, dword [ebx + 0x68]
lea ecx, [ecx + ecx*4]
lea eax, [eax + ecx*4 - 0x14]
test esi, esi
mov dword [eax + 0xc], 0
je 0x4afe53
mov eax, dword [esp + 0xc]
movzx eax, byte [eax + 0x13]
cmp eax, 7
ja 0x4afe53
mov edx, dword [esp + 0xc]
mov ecx, eax
inc cl
mov byte [edx + 0x13], cl
mov dword [edx + eax*4 + 0x94], esi
mov esi, dword [esp]
mov ecx, dword [esp + 0x24]
jmp 0x4aee85