Function at 0x3861e070
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x494
mov eax, dword [0x7076dbc]
xor eax, ebp
mov dword [ebp - 4], eax
mov eax, dword [ebp + 0xc]
push ebx
mov ebx, dword [ebp + 8]
push esi
mov esi, dword [ebp + 0x14]
mov dword [ebp - 0x468], eax
mov eax, dword [ebp + 0x18]
push 0
push ebx
mov dword [ebp - 0x444], ebx
mov dword [ebp - 0x45c], eax
mov dword [ebp - 0x484], 0
mov dword [ebp - 0x494], 0
call 0x37fb8c60
add esp, 8
test eax, eax
jne 0x3861f00c
lea eax, [ebp - 0x494]
push eax
lea eax, [ebp - 0x484]
push eax
push ebx
call 0x37fbae00
add esp, 0xc
test eax, eax
jne 0x3861f00c
cmp dword [ebp - 0x494], 0x2000
jne 0x3861f00c
push edi
push 0x2000
push eax
push dword [ebp - 0x484]
call 0x37ac3010
push dword [esi + 8]
mov eax, dword [esi]
push ebx
mov dword [ebp - 0x46c], 0
mov dword [ebp - 0x478], eax
call 0x37ea3270
mov edi, eax
add esp, 0x14
mov eax, dword [ebp - 0x468]
mov dword [ebp - 0x440], edi
test edi, edi
jne 0x3861e15a
push dword [eax + 0x34]
push ebx
call 0x37ac3ff0
add esp, 8
xor al, al
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call 0x37ac2614
mov esp, ebp
pop ebp
ret
mov ecx, dword [eax + 0x34]
mov edx, edi
sub edx, dword [eax + 0x2c]
mov esi, dword [esi + 0xc]
mov eax, dword [eax + 0x38]
mov dword [ebp - 0x448], ecx
dec eax
lea ecx, [esi + edx]
cmp ecx, eax
ja 0x3861f001
push dword [ebp - 0x45c]
mov eax, dword [ebp - 0x448]
push esi
add eax, edx
push eax
push ebx
call fcn.3861dff0
mov ecx, dword [ebp - 0x468]
mov eax, dword [ecx + 0x1c]
add eax, dword [ecx + 0x18]
mov esi, dword [ecx + 0x38]
push eax
push ebx
mov dword [ebp - 0x450], esi
call 0x37ea32a0
add esp, 0x18
test eax, eax
je 0x3861f001
mov ecx, dword [ebp - 0x468]
mov eax, edi
sub eax, dword [ecx + 0x2c]
lea ecx, [esi - 0x20]
cmp eax, ecx
ja 0x3861f001
mov esi, dword [ebp - 0x448]
lea edi, [ebx + 0x1400]
add esi, eax
mov ecx, 8
rep movsd dword es:[edi], dword [esi]
mov ecx, dword [ebp - 0x478]
xor eax, eax
lea ebx, [ebx]
xor dword [eax + ebx + 0x1400], ecx
add eax, 4
cmp eax, 0x20
jb 0x3861e1f0
mov eax, dword [ebx + 0x1408]
push eax
push ebx
mov dword [ebp - 0x438], eax
call 0x37ea3270
mov dword [ebp - 0x43c], eax
mov eax, dword [ebx + 0x140c]
push eax
push ebx
mov dword [ebp - 0x464], eax
call 0x37ea3270
mov ecx, dword [ebx + 0x1404]
mov esi, dword [ebx + 0x1410]
mov edi, dword [ebx + 0x1414]
mov dword [ebp - 0x45c], eax
mov eax, dword [ebx + 0x141c]
mov dword [ebp - 0x460], eax
xor eax, eax
push 0x400
push eax
mov dword [ebp - 0x47c], eax
lea eax, [ebp - 0x404]
mov dword [ebp - 0x488], ecx
mov ecx, dword [ebx + 0x1418]
push eax
mov dword [ebp - 0x454], esi
mov dword [ebp - 0x474], edi
mov dword [ebp - 0x458], ecx
call 0x37ac3010
mov edx, dword [ebp - 0x43c]
add esp, 0x1c
test edi, edi
mov eax, esi
setne byte [ebp - 0x42d]
sub eax, dword [ebp - 0x45c]
lea edi, [edx - 5]
add edi, eax
mov dword [ebp - 0x44c], edi
cmp edx, dword [ebp - 0x45c]
jne 0x3861e2c3
lea eax, [esi - 5]
neg eax
sbb eax, eax
and edi, eax
mov dword [ebp - 0x44c], edi
mov eax, dword [ebp - 0x468]
mov ecx, dword [ebp - 0x460]
sub ecx, dword [eax + 0x2c]
mov eax, dword [ebp - 0x450]
add ecx, dword [ebp - 0x440]
sub eax, esi
cmp ecx, eax
ja 0x3861f001
cmp esi, 0x800
ja 0x3861f001
mov eax, dword [ebp - 0x448]
add eax, ecx
push esi
push eax
lea eax, [ebx + 0x1400]
push eax
call 0x37ac2ff0
push esi
push dword [ebp - 0x478]
lea eax, [ebx + 0x1400]
push eax
push ebx
call fcn.3861df60
mov ecx, dword [ebp - 0x438]
add esp, 0x1c
mov edx, dword [ebp - 0x464]
cmp ecx, edx
jne 0x3861e33f
cmp esi, 5
jne 0x3861e33f
mov byte [ebx + 0x1400], 0xe8
jmp 0x3861e354
cmp esi, 4
jbe 0x3861e54b
cmp esi, 0x7ec
jae 0x3861e54b
mov eax, dword [ebp - 0x454]
xor esi, esi
sub eax, edi
mov dword [ebp - 0x434], esi
add eax, 0xfffffffc
mov dword [ebp - 0x480], eax
je 0x3861e545
lea eax, [ebx + esi]
add eax, edi
mov dword [ebp - 0x48c], eax
lea edx, [eax + 0x1400]
movzx eax, byte [edx]
mov dword [ebp - 0x470], edx
movzx ecx, word [eax*2 + 0x742c5a8]
movzx eax, byte [edx + 1]
movzx edi, byte [ecx + eax + 0x742c7a8]
test edi, edi
jne 0x3861e3c2
push edx
call 0x37e8df90
mov edi, eax
add esp, 4
cmp edi, 0xffffffff
je 0x3861f001
mov edx, dword [ebp - 0x470]
and edi, 0xf
mov al, byte [edx]
cmp al, 0xe8
je 0x3861e489
cmp al, 0xe9
je 0x3861e489
cmp al, 0xf
jne 0x3861e51f
mov eax, dword [ebp - 0x48c]
mov al, byte [eax + 0x1401]
add al, 0x80
cmp al, 0xf
ja 0x3861e51f
mov ecx, dword [ebp - 0x44c]
lea eax, [ebx + edi]
push dword [ebp - 0x440]
add eax, esi
add ecx, 0x13fc
add eax, ecx
push ebx
mov dword [ebp - 0x470], eax
call 0x37ea32a0
mov ecx, dword [ebp - 0x460]
mov esi, eax
mov eax, dword [ebp - 0x470]
add esi, dword [eax]
add esi, edi
add esi, dword [ebp - 0x434]
add esi, dword [ebp - 0x44c]
add esi, ecx
add ecx, dword [ebp - 0x44c]
add ecx, dword [ebp - 0x440]
push ecx
push ebx
call 0x37ea3450
mov ecx, eax
add esp, 0x10
cmp esi, ecx
jb 0x3861e466
mov eax, dword [ebp - 0x454]
add eax, 0xfffffffc
add eax, ecx
cmp esi, eax
jbe 0x3861e519
mov eax, dword [ebp - 0x470]
sub esi, edi
sub esi, dword [ebp - 0x434]
mov ecx, dword [ebp - 0x438]
sub esi, ecx
mov dword [eax], esi
mov esi, dword [ebp - 0x434]
jmp 0x3861e525
mov ecx, dword [ebp - 0x44c]
lea eax, [ebx + edi]
push dword [ebp - 0x440]
add eax, esi
add ecx, 0x13fc
add eax, ecx
push ebx
mov dword [ebp - 0x470], eax
call 0x37ea32a0
mov ecx, dword [ebp - 0x460]
mov esi, eax
mov eax, dword [ebp - 0x470]
add esi, dword [eax]
add esi, edi
add esi, dword [ebp - 0x434]
add esi, dword [ebp - 0x44c]
add esi, ecx
add ecx, dword [ebp - 0x44c]
add ecx, dword [ebp - 0x440]
push ecx
push ebx
call 0x37ea3450
mov ecx, eax
add esp, 0x10
cmp esi, ecx
jb 0x3861e4f9
mov eax, dword [ebp - 0x454]
add eax, 0xfffffffc
add eax, ecx
cmp esi, eax
jbe 0x3861e519
mov eax, dword [ebp - 0x470]
sub esi, edi
sub esi, dword [ebp - 0x434]
mov ecx, dword [ebp - 0x438]
sub esi, ecx
mov dword [eax], esi
mov esi, dword [ebp - 0x434]
jmp 0x3861e525
mov esi, dword [ebp - 0x434]
mov ecx, dword [ebp - 0x438]
add esi, edi
mov edi, dword [ebp - 0x44c]
mov dword [ebp - 0x434], esi
cmp esi, dword [ebp - 0x480]
jb 0x3861e373
mov edx, dword [ebp - 0x464]
mov esi, dword [ebp - 0x454]
cmp ecx, edx
jne 0x3861e5be
cmp esi, 5
jne 0x3861e5be
xor eax, eax
jmp 0x3861e560
cmp dword [ebp + eax*4 - 0x404], ecx
je 0x3861e6bf
inc eax
cmp eax, 0x50
jb 0x3861e560
mov esi, dword [ebp - 0x43c]
lea edi, [ebx + 0x1400]
add dword [ebx + 0x1401], 5
push 5
push edi
lea eax, [esi - 5]
mov byte [edi], 0xe8
push eax
push ebx
call 0x37e6b820
add esp, 0x10
cmp eax, 5
jne 0x3861f001
mov eax, dword [ebp - 0x438]
mov dword [ebp - 0x404], eax
mov eax, 1
mov dword [ebp - 0x47c], eax
jmp 0x3861e6cb
mov eax, dword [ebp - 0x474]
test eax, eax
je 0x3861e695
mov edx, dword [ebp - 0x468]
mov ecx, dword [ebp - 0x458]
mov dword [ebp - 0x464], 0
sub ecx, dword [edx + 0x2c]
add ecx, dword [ebp - 0x440]
mov dword [ebp - 0x458], ecx
test eax, eax
je 0x3861e695
mov eax, dword [ebp - 0x450]
add eax, 0xfffffffc
mov dword [ebp - 0x480], eax
cmp ecx, eax
ja 0x3861f001
mov eax, dword [ebp - 0x448]
mov edx, dword [ecx + eax]
xor edx, dword [ebp - 0x478]
cmp edx, esi
ja 0x3861f001
cmp dword [ebp - 0x46c], 0x1ffc
jae 0x3861f001
mov ebx, dword [ebp - 0x46c]
mov ecx, edx
mov eax, dword [ebp - 0x484]
sub ecx, edi
add ecx, dword [ebp - 0x438]
add dword [ebp - 0x46c], 4
mov dword [ebx + eax], ecx
mov ebx, dword [ebp - 0x444]
mov ecx, dword [ebp - 0x458]
add ecx, 4
mov dword [ebp - 0x458], ecx
mov eax, dword [ebx + 0x34]
add dword [ebx + edx + 0x1400], eax
mov eax, dword [ebp - 0x464]
inc eax
cmp eax, dword [ebp - 0x474]
mov dword [ebp - 0x464], eax
mov eax, dword [ebp - 0x480]
jb 0x3861e608
mov ecx, dword [ebp - 0x43c]
lea eax, [edi + 0x1400]
mov esi, dword [ebp - 0x45c]
add eax, ebx
sub esi, ecx
push esi
push eax
push ecx
push ebx
call 0x37e6b820
add esp, 0x10
cmp eax, esi
jne 0x3861f001
mov esi, dword [ebp - 0x43c]
lea edi, [ebx + 0x1400]
test esi, esi
je 0x3861f001
mov eax, dword [ebp - 0x440]
mov ecx, dword [ebp - 0x488]
lea edx, [ecx + eax]
mov dword [ebp - 0x440], edx
mov edx, dword [ebp - 0x468]
sub ecx, dword [edx + 0x2c]
mov edx, dword [ebp - 0x450]
add ecx, eax
lea eax, [edx - 0x20]
cmp ecx, eax
ja 0x3861f001
mov esi, dword [ebp - 0x448]
add esi, ecx
mov ecx, 8
rep movsd dword es:[edi], dword [esi]
mov ecx, dword [ebp - 0x478]
lea edi, [ebx + 0x1400]
xor dword [edi], ecx
cmp dword [edi], 0xffffffff
je 0x3861ec00
mov al, byte [ebp - 0x42d]
mov byte [ebp - 0x42d], al
xor eax, eax
jmp 0x3861e740
xor dword [eax + edi + 4], ecx
add eax, 4
cmp eax, 0x1c
jb 0x3861e740
mov esi, dword [edi + 8]
push esi
push ebx
mov dword [ebp - 0x44c], esi
call 0x37ea3270
mov dword [ebp - 0x43c], eax
mov eax, dword [edi + 0xc]
push eax
push ebx
mov dword [ebp - 0x474], eax
call 0x37ea3270
mov esi, dword [ebx + 0x1418]
lea edx, [ebx + 0x1400]
mov edi, dword [edi + 0x10]
mov ecx, eax
mov eax, dword [edx + 0x1c]
add esp, 0x10
mov dword [ebp - 0x460], eax
mov eax, dword [edx + 4]
mov dword [ebp - 0x490], eax
mov eax, dword [edx + 0x14]
mov dword [ebp - 0x454], esi
mov esi, dword [ebp - 0x44c]
mov dword [ebp - 0x470], ecx
mov dword [ebp - 0x458], edi
mov dword [ebp - 0x464], eax
test eax, eax
je 0x3861e7c4
mov byte [ebp - 0x42d], 1
cmp dword [ebp - 0x43c], 0
je 0x3861f001
test ecx, ecx
je 0x3861f001
cmp edi, 0x500
ja 0x3861f001
mov eax, edi
sub eax, ecx
mov ecx, dword [ebp - 0x43c]
add ecx, 0xfffffffb
add ecx, eax
mov eax, dword [ebp - 0x43c]
mov dword [ebp - 0x434], ecx
cmp eax, dword [ebp - 0x470]
jne 0x3861e817
lea eax, [edi - 5]
neg eax
sbb eax, eax
and ecx, eax
mov dword [ebp - 0x434], ecx
mov eax, dword [ebp - 0x468]
mov ecx, dword [ebp - 0x440]
sub ecx, dword [eax + 0x2c]
mov eax, dword [ebp - 0x450]
add ecx, dword [ebp - 0x460]
sub eax, edi
cmp ecx, eax
ja 0x3861f001
mov eax, dword [ebp - 0x448]
push edi
add eax, ecx
push eax
push edx
call 0x37ac2ff0
add esp, 0xc
lea edx, [ebx + 0x1400]
xor ecx, ecx
test edi, edi
je 0x3861e876
jmp 0x3861e860
mov ebx, dword [ebp - 0x478]
lea eax, [ecx + edx]
xor byte [eax], bl
inc ecx
mov ebx, dword [ebp - 0x444]
cmp ecx, edi
jb 0x3861e860
cmp esi, dword [ebp - 0x474]
jne 0x3861e888
cmp edi, 5
jne 0x3861e888
mov byte [edx], 0xe8
jmp 0x3861e891
cmp edi, 4
jbe 0x3861ea63
mov ecx, dword [ebp - 0x434]
mov eax, edi
xor esi, esi
sub eax, ecx
add eax, 0xfffffffc
mov dword [ebp - 0x438], esi
mov dword [ebp - 0x48c], eax
je 0x3861ea5d
lea eax, [ebx + esi]
add eax, ecx
mov dword [ebp - 0x480], eax
lea edx, [eax + 0x1400]
movzx eax, byte [edx]
mov dword [ebp - 0x488], edx
movzx ecx, word [eax*2 + 0x742c5a8]
movzx eax, byte [edx + 1]
movzx edi, byte [ecx + eax + 0x742c7a8]
test edi, edi
jne 0x3861e901
push edx
call 0x37e8df90
mov edi, eax
add esp, 4
cmp edi, 0xffffffff
je 0x3861f001
mov edx, dword [ebp - 0x488]
and edi, 0xf
mov al, byte [edx]
cmp al, 0xe8
je 0x3861e9af
cmp al, 0xe9
je 0x3861e9af
cmp al, 0xf
jne 0x3861ea3d
mov eax, dword [ebp - 0x480]
mov al, byte [eax + 0x1401]
add al, 0x80
cmp al, 0xf
ja 0x3861ea3d
mov ecx, dword [ebp - 0x434]
lea eax, [ebx + edi]
push dword [ebp - 0x440]
add eax, esi
add ecx, 0x13fc
add eax, ecx
push ebx
mov dword [ebp - 0x45c], eax
call 0x37ea32a0
mov ecx, dword [ebp - 0x440]
mov esi, eax
mov eax, dword [ebp - 0x45c]
add ecx, dword [ebp - 0x434]
add ecx, dword [ebp - 0x460]
push ecx
add esi, dword [eax]
add esi, edi
add esi, dword [ebp - 0x438]
add esi, dword [ebp - 0x434]
add esi, dword [ebp - 0x460]
push ebx
call 0x37ea3450
add esp, 0x10
cmp esi, eax
jb 0x3861e9a7
mov ecx, dword [ebp - 0x458]
add ecx, 0xfffffffc
add eax, ecx
cmp esi, eax
jbe 0x3861ea37
mov eax, dword [ebp - 0x45c]
jmp 0x3861ea27
mov ecx, dword [ebp - 0x434]
lea eax, [ebx + edi]
push dword [ebp - 0x440]
add eax, esi
add ecx, 0x13fc
add eax, ecx
push ebx
mov dword [ebp - 0x45c], eax
call 0x37ea32a0
mov ecx, dword [ebp - 0x440]
mov esi, eax
mov eax, dword [ebp - 0x45c]
add ecx, dword [ebp - 0x434]
add ecx, dword [ebp - 0x460]
push ecx
add esi, dword [eax]
add esi, edi
add esi, dword [ebp - 0x438]
add esi, dword [ebp - 0x434]
add esi, dword [ebp - 0x460]
push ebx
call 0x37ea3450
add esp, 0x10
cmp esi, eax
jb 0x3861ea21
mov ecx, dword [ebp - 0x458]
add ecx, 0xfffffffc
add eax, ecx
cmp esi, eax
jbe 0x3861ea37
mov eax, dword [ebp - 0x45c]
sub esi, edi
sub esi, dword [ebp - 0x438]
sub esi, dword [ebp - 0x44c]
mov dword [eax], esi
mov esi, dword [ebp - 0x438]
mov ecx, dword [ebp - 0x434]
add esi, edi
mov dword [ebp - 0x438], esi
cmp esi, dword [ebp - 0x48c]
jb 0x3861e8b2
mov edi, dword [ebp - 0x458]
mov esi, dword [ebp - 0x44c]
cmp esi, dword [ebp - 0x474]
jne 0x3861ead8
cmp edi, 5
jne 0x3861ead8
xor eax, eax
cmp dword [ebp + eax*4 - 0x404], esi
je 0x3861eba9
inc eax
cmp eax, 0x50
jb 0x3861ea72
mov eax, dword [ebp - 0x43c]
lea edi, [ebx + 0x1400]
add dword [ebx + 0x1401], 5
add eax, 0xfffffffb
push 5
push edi
push eax
push ebx
mov byte [edi], 0xe8
call 0x37e6b820
add esp, 0x10
cmp eax, 5
jne 0x3861f001
mov eax, dword [ebp - 0x47c]
cmp eax, 0x99
ja 0x3861f001
mov dword [ebp + eax*4 - 0x404], esi
inc eax
mov dword [ebp - 0x47c], eax
jmp 0x3861ebaf
mov eax, dword [ebp - 0x464]
test eax, eax
je 0x3861eb7a
mov ecx, dword [ebp - 0x468]
xor edi, edi
mov esi, dword [ebp - 0x440]
sub esi, dword [ecx + 0x2c]
add esi, dword [ebp - 0x454]
test eax, eax
je 0x3861eb7a
cmp esi, dword [ebp - 0x450]
ja 0x3861f001
mov eax, dword [ebp - 0x448]
mov edx, dword [esi + eax]
xor edx, dword [ebp - 0x478]
cmp edx, dword [ebp - 0x458]
ja 0x3861f001
cmp dword [ebp - 0x46c], 0x1ffc
jae 0x3861f001
mov ebx, dword [ebp - 0x46c]
mov ecx, edx
mov eax, dword [ebp - 0x484]
inc edi
sub ecx, dword [ebp - 0x434]
add esi, 4
add ecx, dword [ebp - 0x44c]
add dword [ebp - 0x46c], 4
mov dword [ebx + eax], ecx
mov ebx, dword [ebp - 0x444]
mov eax, dword [ebx + 0x34]
add dword [ebx + edx + 0x1400], eax
mov eax, dword [ebp - 0x464]
cmp edi, eax
jb 0x3861eb01
mov ecx, dword [ebp - 0x43c]
mov esi, dword [ebp - 0x470]
mov eax, dword [ebp - 0x434]
sub esi, ecx
add eax, 0x1400
push esi
add eax, ebx
push eax
push ecx
push ebx
call 0x37e6b820
add esp, 0x10
cmp eax, esi
jne 0x3861f001
lea edi, [ebx + 0x1400]
mov edx, dword [ebp - 0x440]
add edx, dword [ebp - 0x490]
mov ecx, dword [ebp - 0x468]
mov eax, edx
mov dword [ebp - 0x440], edx
mov edx, dword [ebp - 0x450]
sub eax, dword [ecx + 0x2c]
cmp eax, edx
ja 0x3861f001
mov esi, dword [ebp - 0x448]
mov ecx, 8
add esi, eax
rep movsd dword es:[edi], dword [esi]
mov ecx, dword [ebp - 0x478]
lea edi, [ebx + 0x1400]
xor dword [edi], ecx
cmp dword [edi], 0xffffffff
jne 0x3861e736
cmp byte [ebp - 0x42d], 0
je 0x3861ef80
push dword [ebx + 0xa0]
push ebx
call 0x37ea3270
mov esi, dword [ebx + 0xa4]
mov ecx, eax
add esp, 8
mov dword [ebp - 0x460], ecx
mov dword [ebp - 0x45c], esi
test ecx, ecx
je 0x3861f001
test esi, esi
je 0x3861f001
cmp esi, 0x40000
ja 0x3861f001
mov eax, dword [ebx + 0xdc14]
cmp eax, ecx
jb 0x3861f001
sub eax, ecx
cmp eax, esi
jb 0x3861f001
cmp esi, 8
jb 0x3861f001
push esi
push ebx
call 0x37ac3fb0
add esp, 8
mov dword [ebp - 0x450], eax
test eax, eax
je 0x3861f001
lea edi, [esi + 0x2000]
mov dword [ebp - 0x47c], edi
cmp edi, esi
jb 0x3861efd3
push edi
push ebx
call 0x37ac3fb0
add esp, 8
mov dword [ebp - 0x454], eax
test eax, eax
je 0x3861efd3
push esi
push dword [ebp - 0x450]
push dword [ebp - 0x460]
push ebx
call 0x37e6b7f0
add esp, 0x10
cmp eax, esi
jne 0x3861ef99
mov ecx, dword [ebp - 0x45c]
xor eax, eax
xor dl, dl
mov dword [ebp - 0x43c], eax
xor esi, esi
mov byte [ebp - 0x42d], dl
add ecx, 0xfffffff8
mov dword [ebp - 0x464], ecx
je 0x3861ee88
mov eax, dword [ebx + 0xdc14]
mov ecx, dword [ebp - 0x460]
mov dword [ebp - 0x458], esi
cmp eax, ecx
jb 0x3861ef99
sub eax, ecx
cmp eax, esi
jb 0x3861ef99
cmp edi, esi
jb 0x3861ef99
xor eax, eax
mov dword [ebp - 0x42c], eax
mov dword [ebp - 0x428], eax
mov dword [ebp - 0x424], eax
mov dword [ebp - 0x420], eax
mov dword [ebp - 0x41c], eax
mov dword [ebp - 0x418], eax
mov dword [ebp - 0x414], eax
mov dword [ebp - 0x410], eax
mov dword [ebp - 0x40c], eax
mov dword [ebp - 0x408], eax
lea eax, [ebp - 0x42c]
push eax
push dword [ebx + 0xa0]
push ebx
call 0x37ea72a0
add esp, 0xc
cmp eax, 0xffffffff
je 0x3861ef99
mov ecx, dword [ebp - 0x460]
cmp ecx, dword [ebp - 0x418]
jne 0x3861ef99
mov eax, dword [ebp - 0x458]
cmp eax, dword [ebp - 0x41c]
ja 0x3861ef99
mov esi, dword [ebp - 0x454]
push eax
push esi
push ecx
push ebx
call 0x37e6b820
add esp, 0x10
cmp eax, dword [ebp - 0x458]
jne 0x3861ef99
push 4
lea eax, [ebp - 0x458]
push eax
mov eax, dword [ebx + 0xdc10]
add eax, 0xa4
push eax
push ebx
call 0x37e6b820
add esp, 0x10
cmp eax, 4
jne 0x3861ef99
push dword [ebp - 0x450]
push ebx
call 0x37ac3ff0
push esi
push ebx
call 0x37ac3ff0
add esp, 0x10
pop edi
pop esi
mov al, 1
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call 0x37ac2614
mov esp, ebp
pop ebp
ret
push dword [ebp - 0x448]
push ebx
call 0x37ac3ff0
push dword [ebp - 0x450]
push ebx
call 0x37ac3ff0
push dword [ebp - 0x454]
push ebx
call 0x37ac3ff0
add esp, 0x18
xor al, al
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call 0x37ac2614
mov esp, ebp
pop ebp
ret
push dword [ebp - 0x448]
push ebx
call 0x37ac3ff0
push dword [ebp - 0x450]
push ebx
call 0x37ac3ff0
add esp, 0x10
xor al, al
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call 0x37ac2614
mov esp, ebp
pop ebp
ret
push dword [ebp - 0x448]
jmp 0x3861e13e
mov ecx, dword [ebp - 4]
xor al, al
rcr byte [esi + 0x33], 0xcd