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

Disassembly:
push 0xffffffffffffffff
push 0x475427
mov eax, dword fs:[0]
push eax
sub esp, 0xc8
mov eax, dword [0x4a3140]
xor eax, esp
mov dword [esp + 0xc4], eax
push ebx
push ebp
push esi
push edi
mov eax, dword [0x4a3140]
xor eax, esp
push eax
lea eax, [esp + 0xdc]
mov dword fs:[0], eax
mov esi, ecx
add dword [esi + 0x64], 2
mov eax, dword [esi + 0x60]
mov ebx, dword [esi + 0x64]
lea edi, [esi + 0x64]
mov dword [esp + 0x30], eax
cmp ebx, eax
jne 0x464bec
add ebx, 0xfffffffe
mov dword [edi], ebx
mov eax, dword [esi + 4]
mov edx, dword [eax]
mov ecx, dword [edx + 8]
mov eax, dword [ecx + 4]
cmp byte [eax + 0x11], 0
mov ebp, dword [edi]
movzx ebx, word [ebp]
jne 0x464bb5
mov edi, edi
cmp word [eax + 0xc], bx
jae 0x464bab
mov eax, dword [eax + 8]
jmp 0x464baf
mov ecx, eax
mov eax, dword [eax]
cmp byte [eax + 0x11], 0
je 0x464ba0
mov eax, dword [edx + 8]
mov dword [esp + 0x20], ecx
cmp ecx, eax
je 0x464bcc
cmp bx, word [ecx + 0xc]
jb 0x464bcc
lea eax, [esp + 0x20]
jmp 0x464bd4
mov dword [esp + 0x2c], eax
lea eax, [esp + 0x2c]
mov eax, dword [eax]
cmp eax, dword [edx + 8]
je 0x464be5
cmp byte [eax + 0xe], 1
je 0x465235
add ebp, 0xfffffffe
mov dword [edi], ebp
jmp 0x464b87
movzx eax, word [ebx]
mov ecx, dword [esi + 4]
mov ebp, dword [ecx]
mov ecx, eax
lea edx, [esp + 0x20]
push edx
lea eax, [esp + 0x30]
mov dword [esp + 0x24], ecx
push eax
lea ecx, [ebp + 4]
call fcn.0045cf20
mov ebp, dword [ebp + 8]
mov eax, dword [esp + 0x2c]
cmp eax, ebp
je 0x464c88
cmp byte [eax + 0xe], 0xd
jne 0x464c88
mov ebp, dword [esi + 4]
cmp ebx, dword [esp + 0x30]
je 0x464c81
movzx esi, word [ebx]
add ebx, 2
mov dword [edi], ebx
mov edx, dword [ebp]
mov ecx, dword [edx + 8]
mov eax, dword [ecx + 4]
cmp byte [eax + 0x11], 0
jne 0x464c55
lea ecx, [ecx]
cmp word [eax + 0xc], si
jae 0x464c4b
mov eax, dword [eax + 8]
jmp 0x464c4f
mov ecx, eax
mov eax, dword [eax]
cmp byte [eax + 0x11], 0
je 0x464c40
mov eax, dword [edx + 8]
mov dword [esp + 0x20], ecx
cmp ecx, eax
je 0x464c6c
cmp si, word [ecx + 0xc]
jb 0x464c6c
lea eax, [esp + 0x20]
jmp 0x464c74
mov dword [esp + 0x2c], eax
lea eax, [esp + 0x2c]
mov eax, dword [eax]
cmp eax, dword [edx + 8]
je 0x464c20
cmp byte [eax + 0xe], 2
jne 0x464c20
mov al, 1
jmp 0x466066
push 0x10
push 0
mov ecx, esi
mov dword [esp + 0x38], 0
call fcn.0045a720
mov ecx, dword [esi]
mov edx, dword [ecx + 0x18]
shr edx, 0x14
mov ebp, eax
and dl, 1
mov byte [ebp + 0xc], dl
mov eax, dword [esi]
mov edx, dword [eax + 0x13c]
mov ecx, ebp
sub ecx, edx
mov dword [esp + 0x20], ecx
mov ecx, dword [esi + 0x78]
mov dword [esp + 0x40], ecx
mov ecx, edx
mov edx, dword [eax + 0x140]
sub edx, ecx
add edx, 3
and edx, 0xfffffffc
add edx, ecx
mov dword [eax + 0x140], edx
mov ebx, dword [esi]
mov eax, dword [ebx + 0x140]
sub eax, dword [ebx + 0x13c]
mov cl, byte [esi + 0x7c]
mov edx, dword [esi + 0x6c]
mov dword [esi + 0x78], eax
mov dword [esp + 0x44], eax
mov eax, dword [ebx + 0x18]
mov dword [esp + 0x2c], eax
mov eax, dword [esi + 0x70]
mov dword [esp + 0x48], eax
mov eax, dword [esi + 0x68]
mov dword [esi + 0x70], eax
mov eax, dword [edi]
mov byte [esi + 0x7c], 0
mov dword [esi + 0x6c], 0xffffffff
movzx eax, word [eax]
mov dword [esp + 0x3c], edx
movzx edx, ax
mov byte [esp + 0x1f], cl
mov ecx, dword [esi + 4]
mov ecx, dword [ecx]
mov dword [esp + 0x18], eax
lea eax, [esp + 0x14]
mov dword [esp + 0x14], edx
push eax
lea edx, [esp + 0x2c]
push edx
add ecx, 4
mov byte [esp + 0x2f], 1
call fcn.0045cf20
mov eax, dword [esi + 4]
mov eax, dword [eax]
mov eax, dword [eax + 8]
mov ecx, dword [esp + 0x28]
cmp ecx, eax
jne 0x464d5c
xor eax, eax
jmp 0x464d60
movzx eax, byte [ecx + 0xe]
movzx eax, al
dec eax
cmp eax, 0x34
ja case.0x464d74.3
movzx eax, byte [eax + 0x4660c4]
jmp dword [eax*4 + 0x466090]
mov eax, dword [esi + 0x68]
mov dword [esi + 0x6c], eax
xor eax, eax
mov dword [ebp + 8], eax
add dword [edi], 2
mov dword [esp + 0x14], eax
jmp 0x465c44
mov ecx, dword [esi + 4]
mov eax, dword [esi + 0x60]
push ecx
push 0xa
push eax
push edi
call fcn.0045ab50
mov ebx, eax
add esp, 0x10
test ebx, ebx
js 0x464dc1
mov ecx, dword [edi]
movzx edx, word [ecx]
mov ecx, dword [esi + 4]
push edx
call fcn.0045e670
cmp al, 2
je 0x465b96
add dword [edi], 0xfffffffe
mov ebx, dword [edi]
movzx eax, word [ebx]
mov ecx, dword [esi + 4]
push eax
call fcn.0045e670
cmp al, 1
je 0x464deb
sub ebx, 2
mov dword [edi], ebx
movzx edx, word [ebx]
mov ecx, dword [esi + 4]
push edx
call fcn.0045e670
cmp al, 1
jne 0x464dd6
push str.The_recursive_sub_expression_refers_to_an_invalid_marking_group__or_is_unterminated.
lea ecx, [esp + 0x6c]
call fcn.0040f8a0
mov ecx, dword [edi]
sub ecx, dword [esi + 0x5c]
lea eax, [esp + 0x68]
push eax
sar ecx, 1
push ecx
push 0x14
mov ecx, esi
mov dword [esp + 0xf0], 0
call fcn.0045f2f0
lea ecx, [esp + 0x68]
call fcn.00402490
jmp 0x466064
mov eax, dword [edi]
mov ecx, dword [esi + 4]
add eax, 2
push ecx
mov dword [edi], eax
mov eax, dword [esi + 0x60]
push 0xa
push eax
push edi
call fcn.0045ab50
mov ebx, eax
add esp, 0x10
test ebx, ebx
jle 0x464e62
mov edx, dword [edi]
movzx eax, word [edx]
mov ecx, dword [esi + 4]
push eax
call fcn.0045e670
cmp al, 2
jne 0x464e62
add ebx, dword [esi + 0x68]
jmp 0x465b96
add dword [edi], 0xfffffffe
mov ebx, dword [edi]
movzx ecx, word [ebx]
push ecx
mov ecx, dword [esi + 4]
call fcn.0045e670
cmp al, 1
je 0x464e8c
sub ebx, 2
mov dword [edi], ebx
movzx eax, word [ebx]
mov ecx, dword [esi + 4]
push eax
call fcn.0045e670
cmp al, 1
jne 0x464e77
push str.An_invalid_or_unterminated_recursive_sub_expression.
lea ecx, [esp + 0x88]
call fcn.0040f8a0
mov edx, dword [edi]
sub edx, dword [esi + 0x5c]
lea ecx, [esp + 0x84]
push ecx
sar edx, 1
push edx
push 0x14
mov ecx, esi
mov dword [esp + 0xf0], 1
call fcn.0045f2f0
lea ecx, [esp + 0x84]
call fcn.00402490
jmp 0x466064
mov eax, dword [edi]
mov ecx, dword [esi + 4]
add eax, 2
push ecx
mov dword [edi], eax
mov eax, dword [esi + 0x60]
push 0xa
push eax
push edi
call fcn.0045ab50
add esp, 0x10
test eax, eax
jg 0x464f46
add dword [edi], 0xfffffffe
mov ecx, esi
call fcn.00460870
mov ebx, dword [edi]
mov dword [esp + 0x18], eax
cmp ebx, dword [esi + 0x60]
jne 0x465bbb
add ebx, 0xfffffffe
mov eax, dword [esi + 4]
mov dword [edi], ebx
mov ebp, dword [eax]
movzx edx, word [ebx]
lea eax, [esp + 0x34]
push eax
lea ecx, [esp + 0x2c]
push ecx
lea ecx, [ebp + 4]
mov dword [esp + 0x3c], edx
call fcn.0045cf20
mov eax, dword [esp + 0x28]
cmp eax, dword [ebp + 8]
je 0x464f41
movzx eax, byte [eax + 0xe]
cmp al, 1
je 0x4650b7
sub ebx, 2
jmp 0x464f0c
mov ebx, dword [esi + 0x68]
sub ebx, eax
inc ebx
test ebx, ebx
jg 0x465b96
add dword [edi], 0xfffffffe
mov ebx, dword [edi]
movzx eax, word [ebx]
mov ecx, dword [esi + 4]
push eax
call fcn.0045e670
cmp al, 1
je 0x464f85
lea esp, [esp]
sub ebx, 2
mov dword [edi], ebx
movzx edx, word [ebx]
mov ecx, dword [esi + 4]
push edx
call fcn.0045e670
cmp al, 1
jne 0x464f70
push str.An_invalid_or_unterminated_recursive_sub_expression.
lea ecx, [esp + 0xa4]
call fcn.0040f8a0
mov ecx, dword [edi]
sub ecx, dword [esi + 0x5c]
lea eax, [esp + 0xa0]
push eax
sar ecx, 1
push ecx
push 0x14
mov ecx, esi
mov dword [esp + 0xf0], 2
call fcn.0045f2f0
lea ecx, [esp + 0xa0]
call fcn.00402490
jmp 0x466064
or eax, 0xffffffff
push 0xc
mov dword [ebp + 8], eax
add dword [edi], 2
push 0x10
mov ecx, esi
mov dword [esp + 0x1c], eax
call fcn.0045a720
mov ecx, dword [esi]
sub eax, dword [ecx + 0x13c]
mov edx, dword [ecx + 0x140]
mov dword [esp + 0x30], eax
mov eax, dword [ecx + 0x13c]
sub edx, eax
add edx, 3
and edx, 0xfffffffc
add edx, eax
mov dword [ecx + 0x140], edx
mov eax, dword [esi]
mov ecx, dword [eax + 0x140]
sub ecx, dword [eax + 0x13c]
mov dword [esi + 0x78], ecx
jmp 0x465c44
mov eax, 0xfffffffe
push 0xc
mov dword [ebp + 8], eax
add dword [edi], 2
push 0x10
mov ecx, esi
mov dword [esp + 0x1c], eax
call fcn.0045a720
mov ecx, dword [esi]
sub eax, dword [ecx + 0x13c]
mov edx, dword [ecx + 0x140]
mov dword [esp + 0x30], eax
mov eax, dword [ecx + 0x13c]
sub edx, eax
add edx, 3
and edx, 0xfffffffc
add edx, eax
mov dword [ecx + 0x140], edx
mov eax, dword [esi]
mov ecx, dword [eax + 0x140]
sub ecx, dword [eax + 0x13c]
mov dword [esi + 0x78], ecx
jmp 0x465c44
mov eax, dword [edi]
add eax, 2
mov dword [esp + 0x14], eax
mov dword [edi], eax
cmp eax, dword [esi + 0x60]
jne 0x4650c4
mov ecx, dword [esi + 4]
mov ebx, eax
add ebx, 0xfffffffe
mov dword [edi], ebx
movzx edx, word [ebx]
push edx
call fcn.0045e670
cmp al, 1
je 0x4650b7
sub ebx, 2
mov dword [edi], ebx
mov eax, ebx
movzx ecx, word [eax]
push ecx
mov ecx, dword [esi + 4]
call fcn.0045e670
cmp al, 1
jne 0x4650a0
mov edx, dword [edi]
sub edx, dword [esi + 0x5c]
sar edx, 1
push edx
jmp 0x46605b
movzx ecx, word [eax]
push ecx
mov ecx, dword [esi + 4]
call fcn.0045e670
cmp al, 0x35
jne 0x4650db
mov eax, 0xfffffffe
jmp 0x4650e2
cmp al, 0x25
jne 0x465131
or eax, 0xffffffff
push 0xc
mov dword [ebp + 8], eax
add dword [edi], 2
push 0x10
mov ecx, esi
mov dword [esp + 0x1c], eax
call fcn.0045a720
mov edx, dword [esi]
sub eax, dword [edx + 0x13c]
push 0x10
push 0x1a
mov ecx, esi
mov dword [esp + 0x38], eax
call fcn.0045a720
mov eax, dword [esi]
mov ecx, dword [eax + 0x13c]
mov edx, dword [eax + 0x140]
sub edx, ecx
add edx, 3
and edx, 0xfffffffc
add edx, ecx
mov dword [eax + 0x140], edx
jmp 0x46500b
mov edx, dword [esp + 0x14]
add edx, 0xfffffffe
mov dword [esp + 0x18], 0x3e
mov dword [edi], edx
jmp 0x4658a6
mov eax, 0xfffffffd
jmp 0x464fce
mov eax, 0xfffffffc
mov dword [ebp + 8], eax
add dword [edi], 2
mov ecx, dword [edi]
mov dword [esp + 0x14], eax
mov eax, dword [esi + 0x60]
cmp ecx, eax
jne 0x4651a4
lea ebx, [ecx - 2]
mov ecx, dword [esi + 4]
mov dword [edi], ebx
movzx edx, word [ebx]
push edx
call fcn.0045e670
cmp al, 1
je 0x465197
mov edi, edi
sub ebx, 2
mov dword [edi], ebx
mov eax, ebx
movzx ecx, word [eax]
push ecx
mov ecx, dword [esi + 4]
call fcn.0045e670
cmp al, 1
jne 0x465180
mov edx, dword [edi]
sub edx, dword [esi + 0x5c]
sar edx, 1
push edx
jmp 0x46605b
mov ecx, dword [esi + 4]
push ecx
push 0xa
push eax
push edi
call fcn.0045ab50
mov ebx, dword [edi]
mov ecx, dword [esi + 0x60]
add esp, 0x10
mov ebp, eax
cmp ebx, ecx
jne 0x4651f2
mov ecx, dword [esi + 4]
add ebx, 0xfffffffe
mov dword [edi], ebx
movzx eax, word [ebx]
push eax
call fcn.0045e670
cmp al, 1
je 0x466055
sub ebx, 2
mov dword [edi], ebx
movzx edx, word [ebx]
mov ecx, dword [esi + 4]
push edx
call fcn.0045e670
cmp al, 1
jne 0x4651d8
jmp 0x466055
movzx eax, word [ebx]
cmp eax, 0x52
jne 0x465372
add ebx, 2
mov dword [edi], ebx
cmp ebx, ecx
jne 0x465242
mov ecx, dword [esi + 4]
add ebx, 0xfffffffe
mov dword [edi], ebx
movzx eax, word [ebx]
push eax
call fcn.0045e670
cmp al, 1
je 0x465235
lea esp, [esp]
sub ebx, 2
mov dword [edi], ebx
movzx edx, word [ebx]
mov ecx, dword [esi + 4]
push edx
call fcn.0045e670
cmp al, 1
jne 0x465220
mov eax, dword [edi]
sub eax, dword [esi + 0x5c]
sar eax, 1
push eax
jmp 0x46605b
cmp word [ebx], 0x26
jne 0x4652bd
add ebx, 2
mov dword [esp + 0x18], ebx
mov dword [edi], ebx
cmp ebx, ecx
je 0x465277
mov ebp, dword [esi + 4]
mov ebx, dword [edi]
movzx ecx, word [ebx]
push ecx
mov ecx, ebp
call fcn.0045e670
cmp al, 2
je 0x465273
add ebx, 2
mov dword [edi], ebx
cmp ebx, dword [esi + 0x60]
jne 0x465258
mov ebx, dword [esp + 0x18]
mov eax, dword [edi]
cmp eax, dword [esi + 0x60]
jne 0x4652b1
mov ecx, dword [esi + 4]
lea ebx, [eax - 2]
mov dword [edi], ebx
movzx eax, word [ebx]
push eax
call fcn.0045e670
cmp al, 1
je 0x466055
sub ebx, 2
mov dword [edi], ebx
movzx edx, word [ebx]
mov ecx, dword [esi + 4]
push edx
call fcn.0045e670
cmp al, 1
jne 0x465297
jmp 0x466055
push eax
push ebx
call fcn.0045a6e0
add esp, 8
jmp 0x4652cd
mov eax, dword [esi + 4]
push eax
push 0xa
push ecx
push edi
call fcn.0045ab50
add esp, 0x10
push 0x10
mov ebx, eax
push 0x1b
mov ecx, esi
neg ebx
call fcn.0045a720
test ebx, ebx
jns 0x4652e3
dec ebx
jmp 0x4652e5
xor ebx, ebx
mov dword [eax + 8], ebx
mov ebx, dword [edi]
movzx eax, word [ebx]
mov ebp, dword [esi + 4]
push eax
mov ecx, ebp
call fcn.0045e670
cmp al, 2
je 0x46532e
add ebx, 0xfffffffe
mov dword [edi], ebx
movzx ecx, word [ebx]
push ecx
mov ecx, ebp
call fcn.0045e670
cmp al, 1
je 0x466055
sub ebx, 2
mov dword [edi], ebx
movzx eax, word [ebx]
mov ecx, dword [esi + 4]
push eax
call fcn.0045e670
cmp al, 1
jne 0x465314
jmp 0x466055
lea eax, [ebx + 2]
mov dword [edi], eax
cmp eax, dword [esi + 0x60]
jne 0x465c44
lea ebx, [eax - 2]
mov dword [edi], ebx
movzx ecx, word [ebx]
push ecx
mov ecx, ebp
call fcn.0045e670
cmp al, 1
je 0x465365
sub ebx, 2
mov dword [edi], ebx
movzx eax, word [ebx]
mov ecx, dword [esi + 4]
push eax
call fcn.0045e670
cmp al, 1
jne 0x465350
mov ecx, dword [edi]
sub ecx, dword [esi + 0x5c]
sar ecx, 1
push ecx
jmp 0x46605b
cmp eax, 0x27
je 0x4656dc
cmp eax, 0x3c
je 0x4656dc
cmp eax, 0x44
jne 0x46549a
mov edx, str.DEFINE
mov eax, dword [edi]
cmp eax, ecx
je 0x4653ac
movsx bx, byte [edx]
cmp word [eax], bx
jne 0x4653ac
add eax, 2
inc edx
mov dword [edi], eax
cmp byte [edx], 0
jne 0x465392
mov eax, dword [edi]
cmp eax, ecx
je 0x465462
cmp byte [edx], 0
jne 0x465462
push 0x10
push 0x1b
mov ecx, esi
call fcn.0045a720
mov dword [eax + 8], 0x270f
mov ebx, dword [edi]
movzx edx, word [ebx]
mov ebp, dword [esi + 4]
push edx
mov ecx, ebp
call fcn.0045e670
cmp al, 2
je 0x46541a
add ebx, 0xfffffffe
mov dword [edi], ebx
movzx eax, word [ebx]
push eax
mov ecx, ebp
call fcn.0045e670
cmp al, 1
je 0x466055
lea ecx, [ecx]
sub ebx, 2
mov dword [edi], ebx
movzx edx, word [ebx]
mov ecx, dword [esi + 4]
push edx
call fcn.0045e670
cmp al, 1
jne 0x465400
jmp 0x466055
lea eax, [ebx + 2]
mov dword [edi], eax
cmp eax, dword [esi + 0x60]
jne 0x465c44
lea ebx, [eax - 2]
mov dword [edi], ebx
movzx eax, word [ebx]
push eax
mov ecx, ebp
call fcn.0045e670
cmp al, 1
je 0x465455
lea esp, [esp]
sub ebx, 2
mov dword [edi], ebx
movzx edx, word [ebx]
mov ecx, dword [esi + 4]
push edx
call fcn.0045e670
cmp al, 1
jne 0x465440
mov eax, dword [edi]
sub eax, dword [esi + 0x5c]
sar eax, 1
push eax
jmp 0x46605b
lea ebx, [eax - 2]
mov dword [edi], ebx
movzx ecx, word [ebx]
push ecx
mov ecx, dword [esi + 4]
call fcn.0045e670
cmp al, 1
je 0x466055
jmp 0x465480
sub ebx, 2
mov dword [edi], ebx
movzx eax, word [ebx]
mov ecx, dword [esi + 4]
push eax
call fcn.0045e670
cmp al, 1
jne 0x465480
jmp 0x466055
test ebp, ebp
jle 0x465544
push 0x10
push 0x1b
mov ecx, esi
call fcn.0045a720
mov dword [eax + 8], ebp
mov ebx, dword [edi]
movzx ecx, word [ebx]
mov ebp, dword [esi + 4]
push ecx
mov ecx, ebp
call fcn.0045e670
cmp al, 2
je 0x4654fc
add ebx, 0xfffffffe
mov dword [edi], ebx
movzx edx, word [ebx]
push edx
mov ecx, ebp
call fcn.0045e670
cmp al, 1
je 0x466055
lea esp, [esp]
sub ebx, 2
mov dword [edi], ebx
mov eax, ebx
movzx ecx, word [eax]
push ecx
mov ecx, dword [esi + 4]
call fcn.0045e670
cmp al, 1
jne 0x4654e0
jmp 0x466055
lea eax, [ebx + 2]
mov dword [edi], eax
cmp eax, dword [esi + 0x60]
jne 0x465c44
lea ebx, [eax - 2]
mov dword [edi], ebx
movzx edx, word [ebx]
push edx
mov ecx, ebp
call fcn.0045e670
cmp al, 1
je 0x465537
mov edi, edi
sub ebx, 2
mov dword [edi], ebx
mov eax, ebx
movzx ecx, word [eax]
push ecx
mov ecx, dword [esi + 4]
call fcn.0045e670
cmp al, 1
jne 0x465520
mov edx, dword [edi]
sub edx, dword [esi + 0x5c]
sar edx, 1
push edx
jmp 0x46605b
mov ebp, dword [esi + 4]
push eax
mov ecx, ebp
call fcn.0045e670
mov ecx, ebp
cmp al, 8
je 0x46558a
add ebx, 0xfffffffe
mov dword [edi], ebx
movzx eax, word [ebx]
push eax
call fcn.0045e670
cmp al, 1
je 0x466055
jmp 0x465570
sub ebx, 2
mov dword [edi], ebx
movzx edx, word [ebx]
mov ecx, dword [esi + 4]
push edx
call fcn.0045e670
cmp al, 1
jne 0x465570
jmp 0x466055
add ebx, 2
mov dword [edi], ebx
cmp ebx, dword [esi + 0x60]
jne 0x4655c8
add ebx, 0xfffffffe
mov dword [edi], ebx
movzx eax, word [ebx]
push eax
call fcn.0045e670
cmp al, 1
je 0x4655bb
sub ebx, 2
mov dword [edi], ebx
movzx edx, word [ebx]
mov ecx, dword [esi + 4]
push edx
call fcn.0045e670
cmp al, 1
jne 0x4655a6
mov eax, dword [edi]
sub eax, dword [esi + 0x5c]
sar eax, 1
push eax
jmp 0x46605b
movzx eax, word [ebx]
push eax
call fcn.0045e670
cmp al, 0x14
jne 0x46567e
add ebx, 2
mov dword [edi], ebx
cmp ebx, dword [esi + 0x60]
jne 0x465619
add ebx, 0xfffffffe
mov dword [edi], ebx
movzx ecx, word [ebx]
push ecx
mov ecx, ebp
call fcn.0045e670
cmp al, 1
je 0x46560c
sub ebx, 2
mov dword [edi], ebx
movzx eax, word [ebx]
mov ecx, dword [esi + 4]
push eax
call fcn.0045e670
cmp al, 1
jne 0x4655f7
mov ecx, dword [edi]
sub ecx, dword [esi + 0x5c]
sar ecx, 1
push ecx
jmp 0x46605b
movzx eax, word [ebx]
push eax
mov ecx, ebp
call fcn.0045e670
cmp al, 0x25
je 0x465674
movzx eax, word [ebx]
push eax
mov ecx, ebp
call fcn.0045e670
cmp al, 0x35
je 0x465674
add ebx, 0xfffffffe
mov dword [edi], ebx
movzx edx, word [ebx]
push edx
mov ecx, ebp
call fcn.0045e670
cmp al, 1
je 0x465667
jmp 0x465650
sub ebx, 2
mov dword [edi], ebx
mov eax, ebx
movzx ecx, word [eax]
push ecx
mov ecx, dword [esi + 4]
call fcn.0045e670
cmp al, 1
jne 0x465650
mov edx, dword [edi]
sub edx, dword [esi + 0x5c]
sar edx, 1
push edx
jmp 0x46605b
add ebx, 0xfffffffa
mov dword [edi], ebx
jmp 0x465c44
movzx eax, word [ebx]
push eax
mov ecx, ebp
call fcn.0045e670
cmp al, 0x25
je 0x4656d2
movzx eax, word [ebx]
push eax
mov ecx, ebp
call fcn.0045e670
cmp al, 0x35
je 0x4656d2
add ebx, 0xfffffffe
mov dword [edi], ebx
movzx eax, word [ebx]
push eax
mov ecx, ebp
call fcn.0045e670
cmp al, 1
je 0x4656c5
sub ebx, 2
mov dword [edi], ebx
movzx edx, word [ebx]
mov ecx, dword [esi + 4]
push edx
call fcn.0045e670
cmp al, 1
jne 0x4656b0
mov eax, dword [edi]
sub eax, dword [esi + 0x5c]
sar eax, 1
push eax
jmp 0x46605b
add ebx, 0xfffffffc
mov dword [edi], ebx
jmp 0x465c44
lea eax, [ebx + 2]
mov dword [edi], eax
mov edx, eax
cmp eax, ecx
je 0x4656fe
movzx ecx, word [eax]
cmp ecx, 0x3e
je 0x4656fe
cmp ecx, 0x27
je 0x4656fe
add eax, 2
mov dword [edi], eax
cmp eax, dword [esi + 0x60]
jne 0x4656e7
mov eax, dword [edi]
cmp eax, dword [esi + 0x60]
jne 0x46573c
mov ecx, dword [esi + 4]
lea ebx, [eax - 2]
mov dword [edi], ebx
movzx edx, word [ebx]
push edx
call fcn.0045e670
cmp al, 1
je 0x466055
mov edi, edi
sub ebx, 2
mov dword [edi], ebx
mov eax, ebx
movzx ecx, word [eax]
push ecx
mov ecx, dword [esi + 4]
call fcn.0045e670
cmp al, 1
jne 0x465720
jmp 0x466055
push eax
push edx
call fcn.0045a6e0
add esp, 8
push 0x10
push 0x1b
mov ecx, esi
mov ebx, eax
call fcn.0045a720
mov dword [eax + 8], ebx
mov eax, dword [edi]
movzx ecx, word [eax]
cmp ecx, 0x3e
je 0x465765
cmp ecx, 0x27
jne 0x46576f
lea ebx, [eax + 2]
mov dword [edi], ebx
cmp ebx, dword [esi + 0x60]
jne 0x4657d6
add dword [edi], 0xfffffffe
mov ebx, dword [edi]
movzx edx, word [ebx]
mov ecx, dword [esi + 4]
push edx
call fcn.0045e670
cmp al, 1
je 0x465799
sub ebx, 2
mov dword [edi], ebx
movzx ecx, word [ebx]
push ecx
mov ecx, dword [esi + 4]
call fcn.0045e670
cmp al, 1
jne 0x465784
push str.Unterminated_named_capture.
lea ecx, [esp + 0x50]
call fcn.0040f8a0
mov dword [esp + 0xe4], 3
mov eax, dword [edi]
sub eax, dword [esi + 0x5c]
lea edx, [esp + 0x4c]
push edx
sar eax, 1
push eax
push 0x14
mov ecx, esi
call fcn.0045f2f0
lea ecx, [esp + 0x4c]
call fcn.00402490
jmp 0x466064
movzx ecx, word [ebx]
mov ebp, dword [esi + 4]
push ecx
mov ecx, ebp
call fcn.0045e670
cmp al, 2
je 0x465824
add ebx, 0xfffffffe
mov dword [edi], ebx
movzx edx, word [ebx]
push edx
mov ecx, ebp
call fcn.0045e670
cmp al, 1
je 0x465817
lea esp, [esp]
sub ebx, 2
mov dword [edi], ebx
mov eax, ebx
movzx ecx, word [eax]
push ecx
mov ecx, dword [esi + 4]
call fcn.0045e670
cmp al, 1
jne 0x465800
mov edx, dword [edi]
sub edx, dword [esi + 0x5c]
sar edx, 1
push edx
jmp 0x46605b
lea eax, [ebx + 2]
mov dword [edi], eax
cmp eax, dword [esi + 0x60]
jne 0x465c44
lea ebx, [eax - 2]
mov dword [edi], ebx
movzx eax, word [ebx]
push eax
mov ecx, ebp
call fcn.0045e670
cmp al, 1
je 0x46585b
sub ebx, 2
mov dword [edi], ebx
movzx edx, word [ebx]
mov ecx, dword [esi + 4]
push edx
call fcn.0045e670
cmp al, 1
jne 0x465846
mov eax, dword [edi]
sub eax, dword [esi + 0x5c]
sar eax, 1
push eax
jmp 0x46605b
mov eax, dword [edi]
lea ebx, [eax - 2]
mov dword [edi], ebx
movzx ecx, word [ebx]
push ecx
mov ecx, dword [esi + 4]
call fcn.0045e670
cmp al, 1
je 0x466055
sub ebx, 2
mov dword [edi], ebx
movzx eax, word [ebx]
mov ecx, dword [esi + 4]
push eax
call fcn.0045e670
cmp al, 1
jne 0x465883
jmp 0x466055
movzx ecx, word [esp + 0x18]
mov dword [esp + 0x18], ecx
test dword [ebx + 0x18], 0x400000
mov dword [esp + 0x14], 0
jne 0x4658f1
mov eax, dword [esi + 0x68]
inc eax
mov dword [esi + 0x68], eax
test dword [ebx + 0x18], 0x800000
mov dword [esp + 0x14], eax
je 0x4658f1
mov eax, dword [edi]
sub eax, dword [esi + 0x5c]
lea edx, [esp + 0x34]
sar eax, 1
add eax, 0xfffffffe
push edx
lea ecx, [ebx + 0x148]
mov dword [esp + 0x38], eax
mov dword [esp + 0x3c], 0
call fcn.00461c20
mov eax, dword [esp + 0x14]
mov dword [ebp + 8], eax
add dword [edi], 2
mov eax, dword [edi]
mov ecx, dword [esi + 0x60]
mov edx, eax
cmp eax, ecx
jne 0x465942
lea ebx, [eax - 2]
mov dword [edi], ebx
movzx ecx, word [ebx]
push ecx
mov ecx, dword [esi + 4]
call fcn.0045e670
cmp al, 1
je 0x465935
jmp 0x465920
sub ebx, 2
mov dword [edi], ebx
movzx eax, word [ebx]
mov ecx, dword [esi + 4]
push eax
call fcn.0045e670
cmp al, 1
jne 0x465920
mov ecx, dword [edi]
sub ecx, dword [esi + 0x5c]
sar ecx, 1
push ecx
jmp 0x46605b
mov bx, word [esp + 0x18]
cmp word [eax], bx
je 0x465956
add eax, 2
mov dword [edi], eax
cmp eax, dword [esi + 0x60]
jne 0x465942
mov eax, dword [edi]
cmp eax, ecx
jne 0x465991
mov ecx, dword [esi + 4]
lea ebx, [eax - 2]
mov dword [edi], ebx
movzx edx, word [ebx]
push edx
call fcn.0045e670
cmp al, 1
je 0x466055
sub ebx, 2
mov dword [edi], ebx
mov eax, ebx
movzx ecx, word [eax]
push ecx
mov ecx, dword [esi + 4]
call fcn.0045e670
cmp al, 1
jne 0x465975
jmp 0x466055
mov ecx, dword [esp + 0x14]
push ecx
mov ecx, dword [esi]
push eax
push edx
call fcn.00463620
add dword [edi], 2
jmp 0x465c44
mov eax, dword [esp + 0x18]
cmp ax, 0x52
jne 0x465a1d
mov eax, dword [edi]
mov ecx, dword [esi + 4]
add eax, 2
mov dword [edi], eax
movzx edx, word [eax]
push edx
mov dword [esp + 0x18], eax
xor ebx, ebx
call fcn.0045e670
cmp al, 2
je 0x465b96
mov eax, dword [esp + 0x14]
add eax, 0xfffffffe
mov dword [edi], eax
jmp 0x4659e0
mov ebp, dword [edi]
mov eax, dword [esi + 4]
movzx ecx, word [ebp]
mov ebx, dword [eax]
lea edx, [esp + 0x28]
push edx
lea eax, [esp + 0x24]
mov dword [esp + 0x2c], ecx
push eax
lea ecx, [ebx + 4]
call fcn.0045cf20
mov eax, dword [esp + 0x20]
cmp eax, dword [ebx + 8]
je 0x465a16
movzx eax, byte [eax + 0xe]
cmp al, 1
je 0x465365
add ebp, 0xfffffffe
mov dword [edi], ebp
jmp 0x4659e0
cmp ax, 0x26
jne 0x465ac7
mov ebx, dword [edi]
add ebx, 2
mov dword [edi], ebx
mov dword [esp + 0x34], ebx
cmp ebx, dword [esi + 0x60]
je 0x465a78
movzx edx, word [ebx]
mov eax, dword [esi + 4]
mov eax, dword [eax]
lea ecx, [esp + 0x28]
mov dword [esp + 0x28], edx
push ecx
lea edx, [esp + 0x18]
push edx
lea ecx, [eax + 4]
mov dword [esp + 0x20], eax
call fcn.0045cf20
mov eax, dword [esp + 0x18]
mov eax, dword [eax + 8]
mov ecx, dword [esp + 0x14]
cmp ecx, eax
je 0x465a6e
cmp byte [ecx + 0xe], 2
je 0x465a78
add ebx, 2
mov dword [edi], ebx
cmp ebx, dword [esi + 0x60]
jne 0x465a37
mov eax, dword [edi]
cmp eax, dword [esi + 0x60]
jne 0x465abd
lea ebp, [eax - 2]
mov eax, dword [esi + 4]
mov dword [edi], ebp
mov ebx, dword [eax]
movzx edx, word [ebp]
lea eax, [esp + 0x28]
push eax
lea ecx, [esp + 0x24]
push ecx
lea ecx, [ebx + 4]
mov dword [esp + 0x30], edx
call fcn.0045cf20
mov eax, dword [esp + 0x20]
cmp eax, dword [ebx + 8]
je 0x465ab8
movzx eax, byte [eax + 0xe]
cmp al, 1
je 0x4650b7
sub ebp, 2
jmp 0x465a82
push eax
mov eax, dword [esp + 0x38]
jmp 0x465b8b
cmp ax, 0x50
jne 0x464ef3
mov eax, dword [edi]
mov ecx, dword [esi + 0x60]
add eax, 2
mov dword [edi], eax
cmp eax, ecx
jne 0x465b16
lea ebx, [eax - 2]
mov dword [edi], ebx
movzx ecx, word [ebx]
push ecx
mov ecx, dword [esi + 4]
call fcn.0045e670
cmp al, 1
je 0x465b09
sub ebx, 2
mov dword [edi], ebx
movzx eax, word [ebx]
mov ecx, dword [esi + 4]
push eax
call fcn.0045e670
cmp al, 1
jne 0x465af4
mov ecx, dword [edi]
sub ecx, dword [esi + 0x5c]
sar ecx, 1
push ecx
jmp 0x46605b
cmp word [eax], 0x3e
jne 0x464ef3
add eax, 2
mov dword [esp + 0x18], eax
mov dword [edi], eax
cmp eax, ecx
je 0x465b50
lea ecx, [ecx]
mov ebx, dword [edi]
movzx edx, word [ebx]
mov ecx, dword [esi + 4]
push edx
call fcn.0045e670
cmp al, 2
je 0x465b4c
add ebx, 2
mov dword [edi], ebx
cmp ebx, dword [esi + 0x60]
jne 0x465b30
mov eax, dword [esp + 0x18]
mov ecx, dword [edi]
cmp ecx, dword [esi + 0x60]
jne 0x465b8a
lea ebx, [ecx - 2]
mov dword [edi], ebx
movzx ecx, word [ebx]
push ecx
mov ecx, dword [esi + 4]
call fcn.0045e670
cmp al, 1
je 0x466055
sub ebx, 2
mov dword [edi], ebx
movzx eax, word [ebx]
mov ecx, dword [esi + 4]
push eax
call fcn.0045e670
cmp al, 1
jne 0x465b70
jmp 0x466055
push ecx
push eax
call fcn.0045a6e0
mov ebx, eax
add esp, 8
xor eax, eax
push 0x10
push 0x1d
mov ecx, esi
mov dword [esp + 0x1c], eax
mov dword [ebp + 8], eax
call fcn.0045a720
mov dword [eax + 8], ebx
mov dword [eax + 0xc], 0
mov ecx, dword [esi]
mov ebx, dword [ecx + 0x18]
jmp 0x465c30
mov ecx, dword [esi]
mov ecx, dword [ecx + 0x18]
shr eax, 0x14
shr ecx, 0x14
xor al, cl
and al, 1
mov byte [esi + 0x7c], al
xor eax, eax
mov dword [ebp + 8], eax
mov ebx, dword [edi]
mov ebp, dword [esi + 4]
mov dword [esp + 0x14], eax
movzx eax, word [ebx]
push eax
mov ecx, ebp
call fcn.0045e670
cmp al, 2
jne 0x465c04
mov edx, dword [esp + 0x18]
push edx
mov ecx, esi
call fcn.00458740
mov al, byte [esi + 0x7c]
or byte [esp + 0x1f], al
mov byte [esp + 0x27], 0
jmp 0x465c26
movzx eax, word [ebx]
push eax
mov ecx, ebp
call fcn.0045e670
cmp al, 0x24
jne 0x46602b
mov ecx, dword [esp + 0x18]
push ecx
mov ecx, esi
call fcn.00458740
add dword [edi], 2
cmp byte [esi + 0x7c], 0
je 0x465c44
mov ebx, dword [esp + 0x18]
push 0xc
shr ebx, 0x14
push 0x1c
mov ecx, esi
and bl, 1
call fcn.0045a720
mov byte [eax + 8], bl
mov edx, dword [edi]
cmp edx, dword [esi + 0x60]
je 0x465c56
mov eax, dword [esi + 0x58]
mov ecx, esi
call eax
test al, al
jne 0x465c44
mov ecx, dword [esp + 0x20]
push ecx
mov ecx, esi
call fcn.0045f400
test al, al
jne 0x465cb3
add dword [edi], 0xfffffffe
mov ebx, dword [edi]
movzx edx, word [ebx]
mov ecx, dword [esi + 4]
push edx
call fcn.0045e670
cmp al, 1
je 0x465c95
jmp 0x465c80
sub ebx, 2
mov dword [edi], ebx
movzx ecx, word [ebx]
push ecx
mov ecx, dword [esi + 4]
call fcn.0045e670
cmp al, 1
jne 0x465c80
push str.Invalid_alternation_operators_within___...__block.
lea ecx, [esp + 0x50]
call fcn.0040f8a0
mov dword [esp + 0xe4], 4
jmp 0x4657b2
mov eax, dword [edi]
mov ebp, dword [esi + 0x60]
cmp eax, ebp
jne 0x465cf3
lea ebx, [eax - 2]
mov dword [edi], ebx
movzx ecx, word [ebx]
push ecx
mov ecx, dword [esi + 4]
call fcn.0045e670
cmp al, 1
je 0x465ce6
sub ebx, 2
mov dword [edi], ebx
movzx eax, word [ebx]
mov ecx, dword [esi + 4]
push eax
call fcn.0045e670
cmp al, 1
jne 0x465cd1
sub ebp, dword [esi + 0x5c]
sar ebp, 1
push ebp
push 8
jmp 0x46605d
add eax, 2
cmp byte [esp + 0x27], 0
mov dword [edi], eax
je 0x465d29
cmp byte [esi + 0x7c], 0
je 0x465d1d
mov ebx, dword [esp + 0x2c]
push 0xc
shr ebx, 0x14
push 0x1c
mov ecx, esi
and bl, 1
call fcn.0045a720
mov byte [eax + 8], bl
mov ecx, dword [esp + 0x2c]
push ecx
mov ecx, esi
call fcn.00458740
mov ebx, dword [esp + 0x30]
mov ebp, dword [esp + 0x14]
test ebx, ebx
je 0x465dd0
mov eax, dword [esi]
mov ecx, dword [eax + 0x13c]
mov edx, dword [eax + 0x140]
sub edx, ecx
add edx, 3
and edx, 0xfffffffc
add edx, ecx
mov dword [eax + 0x140], edx
mov eax, dword [esi]
mov edx, dword [eax + 0x13c]
lea ecx, [edx + ebx]
mov ebx, dword [eax + 0x140]
sub ebx, edx
sub ebx, ecx
add ebx, edx
mov dword [ecx + 8], ebx
cmp dword [esi + 8], ecx
jne 0x465dd0
cmp ebp, 0xfffffffe
je 0x465dd0
add dword [edi], 0xfffffffe
mov ebx, dword [edi]
movzx eax, word [ebx]
mov ecx, dword [esi + 4]
push eax
call fcn.0045e670
cmp al, 1
je 0x465da5
sub ebx, 2
mov dword [edi], ebx
movzx edx, word [ebx]
mov ecx, dword [esi + 4]
push edx
call fcn.0045e670
cmp al, 1
jne 0x465d90
push str.Invalid_or_empty_zero_width_assertion.
lea ecx, [esp + 0x50]
call fcn.0040f8a0
mov ecx, dword [edi]
sub ecx, dword [esi + 0x5c]
lea eax, [esp + 0x4c]
push eax
sar ecx, 1
mov dword [esp + 0xe8], 5
push ecx
jmp 0x4657bf
cmp ebp, 0xfffffffc
jne 0x465fa2
mov edx, dword [esi]
mov eax, dword [edx + 0x13c]
mov ebx, dword [esp + 0x44]
add eax, ebx
cmp dword [eax], 0x11
je 0x465eab
push 0x110
push 0x11
push ebx
mov ecx, esi
call fcn.004595b0
mov ecx, dword [esi]
mov edx, dword [ecx + 0x13c]
mov ebp, dword [ecx + 0x140]
sub ebp, edx
sub ebp, eax
add ebp, edx
mov dword [eax + 8], ebp
mov ebp, dword [esp + 0x14]
mov eax, dword [esi]
mov eax, dword [eax + 0x13c]
add eax, ebx
add eax, dword [eax + 4]
mov eax, dword [eax]
cmp eax, 0x1b
je 0x465fa2
test eax, eax
je 0x465fa2
add dword [edi], 0xfffffffe
mov ebx, dword [edi]
movzx ecx, word [ebx]
push ecx
mov ecx, dword [esi + 4]
call fcn.0045e670
cmp al, 1
je 0x465e65
nop
sub ebx, 2
mov dword [edi], ebx
movzx eax, word [ebx]
mov ecx, dword [esi + 4]
push eax
call fcn.0045e670
cmp al, 1
jne 0x465e50
push str.A_repetition_operator_cannot_be_applied_to_a_zero_width_assertion.
lea ecx, [esp + 0xc0]
call fcn.0040f8a0
mov edx, dword [edi]
sub edx, dword [esi + 0x5c]
lea ecx, [esp + 0xbc]
push ecx
sar edx, 1
push edx
push 0xd
mov ecx, esi
mov dword [esp + 0xf0], 8
call fcn.0045f2f0
lea ecx, [esp + 0xbc]
call fcn.00402490
jmp 0x466064
mov ecx, dword [eax + 8]
cmp dword [eax + ecx], 0x11
jne 0x465f22
add dword [edi], 0xfffffffe
mov ebx, dword [edi]
movzx edx, word [ebx]
mov ecx, dword [esi + 4]
push edx
call fcn.0045e670
cmp al, 1
je 0x465ee5
lea esp, [esp]
sub ebx, 2
mov dword [edi], ebx
movzx ecx, word [ebx]
push ecx
mov ecx, dword [esi + 4]
call fcn.0045e670
cmp al, 1
jne 0x465ed0
push str.More_than_one_alternation_operator__was_encountered_inside_a_conditional_expression.
lea ecx, [esp + 0x50]
call fcn.0040f8a0
mov eax, dword [edi]
sub eax, dword [esi + 0x5c]
lea edx, [esp + 0x4c]
push edx
sar eax, 1
push eax
push 2
mov ecx, esi
mov dword [esp + 0xf0], 6
call fcn.0045f2f0
lea ecx, [esp + 0x4c]
call fcn.00402490
jmp 0x466064
add eax, dword [eax + 4]
cmp dword [eax], 0x1b
jne 0x465e1a
cmp dword [eax + 8], 0x270f
jne 0x465e1a
add dword [edi], 0xfffffffe
mov ebx, dword [edi]
movzx ecx, word [ebx]
push ecx
mov ecx, dword [esi + 4]
call fcn.0045e670
cmp al, 1
je 0x465f65
sub ebx, 2
mov dword [edi], ebx
movzx eax, word [ebx]
mov ecx, dword [esi + 4]
push eax
call fcn.0045e670
cmp al, 1
jne 0x465f50
push str.Alternation_operators_are_not_allowed_inside_a_DEFINE_block.
lea ecx, [esp + 0x50]
call fcn.0040f8a0
mov edx, dword [edi]
sub edx, dword [esi + 0x5c]
lea ecx, [esp + 0x4c]
push ecx
sar edx, 1
push edx
push 2
mov ecx, esi
mov dword [esp + 0xf0], 7
call fcn.0045f2f0
lea ecx, [esp + 0x4c]
call fcn.00402490
jmp 0x466064
push 0x10
push 1
mov ecx, esi
call fcn.0045a720
mov dword [eax + 8], ebp
mov ecx, dword [esi]
mov edx, dword [ecx + 0x18]
mov ecx, dword [esp + 0x40]
shr edx, 0x14
and dl, 1
mov byte [eax + 0xc], dl
mov eax, dword [esp + 0x20]
mov dl, byte [esp + 0x1f]
mov dword [esi + 0x74], eax
mov eax, dword [esi + 0x70]
mov dword [esi + 0x78], ecx
mov byte [esi + 0x7c], dl
cmp eax, dword [esi + 0x68]
jbe 0x465fde
mov dword [esi + 0x68], eax
mov eax, dword [esp + 0x3c]
mov ecx, dword [esp + 0x48]
mov dword [esi + 0x6c], eax
mov dword [esi + 0x70], ecx
test ebp, ebp
jle 0x466027
mov eax, dword [esi]
test dword [eax + 0x18], 0x800000
je 0x466015
mov edi, dword [edi]
sub edi, dword [esi + 0x5c]
lea edx, [ebp - 1]
sar edi, 1
push edx
lea ecx, [eax + 0x148]
dec edi
call fcn.00458920
mov dword [eax + 4], edi
cmp ebp, 0x20
jge 0x466027
lea ecx, [ebp - 1]
mov eax, 1
shl eax, cl
or dword [esi + 0x18], eax
mov al, 1
jmp 0x466066
add ebx, 0xfffffffe
mov dword [edi], ebx
movzx ecx, word [ebx]
push ecx
mov ecx, ebp
call fcn.0045e670
cmp al, 1
je 0x466055
nop
sub ebx, 2
mov dword [edi], ebx
movzx eax, word [ebx]
mov ecx, dword [esi + 4]
push eax
call fcn.0045e670
cmp al, 1
jne 0x466040
sub ebx, dword [esi + 0x5c]
sar ebx, 1
push ebx
push 0x14
mov ecx, esi
call fcn.0045f340
xor al, al
mov ecx, dword [esp + 0xdc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebp
pop ebx
mov ecx, dword [esp + 0xc4]
xor ecx, esp
call fcn.00456bde
add esp, 0xd4
ret
sub esp, 0x14
push ebx
push esi
mov esi, ecx
add dword [esi + 0x64], 2
mov ebx, dword [esi + 0x64]
cmp ebx, dword [esi + 0x60]
jne 0x468618
sub ebx, dword [esi + 0x5c]
sar ebx, 1
push ebx
push 8
call fcn.0045f340
pop esi
xor al, al
pop ebx
add esp, 0x14
ret
push ebp
mov ebp, dword [esi]
mov eax, dword [ebp + 0x18]
push edi
test eax, 0x203
je 0x468632
and eax, 0x1003
cmp eax, 0x1001
jne 0x46866f
mov eax, dword [esi + 4]
movzx ecx, word [ebx]
mov edi, dword [eax]
lea edx, [esp + 0x14]
push edx
lea eax, [esp + 0x1c]
mov dword [esp + 0x18], ecx
push eax
lea ecx, [edi + 4]
call fcn.0045cf20
mov eax, dword [esp + 0x18]
cmp eax, dword [edi + 8]
je 0x46866f
movzx eax, byte [eax + 0xe]
cmp al, 8
jne 0x46866f
pop edi
pop ebp
mov ecx, esi
pop esi
pop ebx
add esp, 0x14
jmp 0x464b30
xor edi, edi
test dword [ebp + 0x18], 0x400000
jne 0x4686ab
inc dword [esi + 0x68]
test dword [ebp + 0x18], 0x800000
mov edi, dword [esi + 0x68]
je 0x4686ab
sub ebx, dword [esi + 0x5c]
lea ecx, [esp + 0x1c]
sar ebx, 1
dec ebx
push ecx
lea ecx, [ebp + 0x148]
mov dword [esp + 0x20], ebx
mov dword [esp + 0x24], 0
call fcn.00461c20
push 0x10
push 0
mov ecx, esi
call fcn.0045a720
mov dword [eax + 8], edi
mov edx, dword [esi]
mov ecx, dword [edx + 0x18]
shr ecx, 0x14
and cl, 1
mov byte [eax + 0xc], cl
mov ecx, dword [esi]
sub eax, dword [ecx + 0x13c]
mov edx, dword [esi + 0x78]
mov dword [esp + 0x1c], edx
mov edx, dword [ecx + 0x140]
mov ebx, eax
mov eax, dword [ecx + 0x13c]
sub edx, eax
add edx, 3
and edx, 0xfffffffc
add edx, eax
mov dword [ecx + 0x140], edx
mov eax, dword [esi]
mov ecx, dword [eax + 0x140]
sub ecx, dword [eax + 0x13c]
mov dl, byte [esi + 0x7c]
mov dword [esi + 0x78], ecx
mov ebp, dword [eax + 0x18]
mov eax, dword [esi + 0x6c]
mov dword [esp + 0x18], ebx
mov byte [esp + 0x13], dl
mov byte [esi + 0x7c], 0
mov dword [esp + 0x14], eax
mov dword [esi + 0x6c], 0xffffffff
mov ecx, dword [esi + 0x64]
cmp ecx, dword [esi + 0x60]
je 0x468738
mov edx, dword [esi + 0x58]
mov ecx, esi
call edx
test al, al
jne 0x468725
push ebx
mov ecx, esi
call fcn.0045f400
test al, al
je 0x46879f
cmp byte [esi + 0x7c], 0
je 0x468764
mov ebx, ebp
push 0xc
shr ebx, 0x14
push 0x1c
mov ecx, esi
and bl, 1
call fcn.0045a720
mov byte [eax + 8], bl
mov ebx, dword [esp + 0x18]
mov eax, dword [esi]
mov dword [eax + 0x18], ebp
mov eax, ebp
shr eax, 0x14
and al, 1
cmp byte [esi + 0xc], al
je 0x468778
mov byte [esi + 0xc], al
mov eax, dword [esp + 0x14]
mov ecx, dword [esi + 0x60]
mov dl, byte [esp + 0x13]
mov dword [esi + 0x6c], eax
mov eax, dword [esi + 0x64]
mov byte [esi + 0x7c], dl
cmp eax, ecx
jne 0x4687a9
sub ecx, dword [esi + 0x5c]
sar ecx, 1
push ecx
push 8
mov ecx, esi
call fcn.0045f340
pop edi
pop ebp
pop esi
xor al, al
pop ebx
add esp, 0x14
ret
test edi, edi
je 0x4687d1
mov ecx, dword [esi]
test dword [ecx + 0x18], 0x800000
je 0x4687d1
sub eax, dword [esi + 0x5c]
lea edx, [edi - 1]
sar eax, 1
push edx
add ecx, 0x148
mov ebp, eax
call fcn.00458920
mov dword [eax + 4], ebp
add dword [esi + 0x64], 2
push 0x10
push 1
mov ecx, esi
call fcn.0045a720
mov dword [eax + 8], edi
mov ecx, dword [esi]
mov edx, dword [ecx + 0x18]
shr edx, 0x14
and dl, 1
mov byte [eax + 0xc], dl
mov eax, dword [esp + 0x1c]
lea ecx, [edi - 1]
mov dword [esi + 0x74], ebx
mov dword [esi + 0x78], eax
cmp ecx, 0x1e
ja 0x46880d
mov edx, 1
shl edx, cl
or dword [esi + 0x18], edx
pop edi
pop ebp
pop esi
mov al, 1
pop ebx
add esp, 0x14
ret