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

Disassembly:
push 0xffffffffffffffff
push 0x6c5ea3
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 0x1c4
push ebx
push ebp
push esi
push edi
mov edi, ecx
mov dword [esp + 0x13c], edi
xor ebx, ebx
or esi, 0xffffffff
mov dword [esp + 0x1dc], ebx
mov dword [esp + 0x168], 0x6dd1f4
mov word [esp + 0x16c], si
mov word [esp + 0x16e], bx
lea ecx, [esp + 0x144]
mov byte [esp + 0x1dc], 1
call fcn.0061e190
lea ecx, [esp + 0x170]
mov byte [esp + 0x1dc], 2
call fcn.0061aaa0
lea ecx, [esp + 0x24]
mov byte [esp + 0x1dc], 3
call fcn.0061d780
push 0x6c
push 0xf1
push 0x99
lea ecx, [esp + 0x1c0]
mov byte [esp + 0x1e8], 4
call fcn.00555f00
mov al, byte [esp + 0x2b]
mov dword [esp + 0x14], ebx
mov byte [esp + 0x10], al
mov dword [esp + 0x18], ebx
mov dword [esp + 0x1c], ebx
push 6
push 0x71c1fc
lea ecx, [esp + 0x140]
mov byte [esp + 0x1e4], 6
call fcn.0061d820
push 6
push 0x7137f4
lea ecx, [esp + 0x148]
mov byte [esp + 0x1e4], 7
call fcn.0061d820
mov al, 0xae
mov byte [esp + 0x1dc], 8
mov byte [esp + 0x34], 8
mov byte [esp + 0x35], al
mov byte [esp + 0x36], 4
mov byte [esp + 0x37], 2
mov byte [esp + 0x38], bl
mov byte [esp + 0x39], bl
mov byte [esp + 0x3a], bl
mov byte [esp + 0x3b], bl
mov byte [esp + 0x3c], bl
mov byte [esp + 0x3d], bl
mov byte [esp + 0x3e], 8
mov byte [esp + 0x3f], al
mov byte [esp + 0x40], 4
mov byte [esp + 0x41], 2
mov byte [esp + 0x42], 2
mov byte [esp + 0x43], bl
mov byte [esp + 0x44], bl
mov byte [esp + 0x45], bl
mov byte [esp + 0x46], bl
mov byte [esp + 0x47], bl
mov byte [esp + 0x48], 8
mov byte [esp + 0x49], al
mov byte [esp + 0x4a], 4
mov byte [esp + 0x4b], 2
mov byte [esp + 0x4c], 2
mov byte [esp + 0x4d], bl
mov byte [esp + 0x4e], bl
mov byte [esp + 0x4f], bl
mov cl, 0x80
mov byte [esp + 0x50], bl
mov byte [esp + 0x51], bl
mov byte [esp + 0x52], 8
mov byte [esp + 0x53], al
mov byte [esp + 0x54], 4
mov byte [esp + 0x55], 4
mov byte [esp + 0x56], bl
mov byte [esp + 0x57], bl
mov byte [esp + 0x58], bl
mov byte [esp + 0x59], bl
mov byte [esp + 0x5a], bl
mov byte [esp + 0x5b], bl
mov byte [esp + 0x5c], 8
mov byte [esp + 0x5d], al
mov byte [esp + 0x5e], 4
mov byte [esp + 0x5f], 4
mov byte [esp + 0x60], 4
mov byte [esp + 0x61], bl
mov byte [esp + 0x62], bl
mov byte [esp + 0x63], bl
mov byte [esp + 0x64], bl
mov byte [esp + 0x65], bl
mov byte [esp + 0x66], 8
mov byte [esp + 0x67], al
mov byte [esp + 0x68], 4
mov byte [esp + 0x69], bl
mov byte [esp + 0x6a], bl
mov byte [esp + 0x6b], bl
mov byte [esp + 0x6c], bl
mov byte [esp + 0x6d], bl
mov byte [esp + 0x6e], bl
mov byte [esp + 0x6f], bl
mov byte [esp + 0x70], 8
mov byte [esp + 0x71], al
mov byte [esp + 0x72], 4
mov byte [esp + 0x73], bl
mov byte [esp + 0x74], bl
mov byte [esp + 0x75], cl
mov byte [esp + 0x76], bl
mov byte [esp + 0x77], bl
mov byte [esp + 0x78], bl
mov byte [esp + 0x79], bl
mov byte [esp + 0x7a], 8
mov byte [esp + 0x7b], al
mov byte [esp + 0x7c], 4
mov byte [esp + 0x7d], bl
mov byte [esp + 0x7e], bl
mov byte [esp + 0x7f], cl
mov byte [esp + 0x80], cl
mov byte [esp + 0x81], bl
mov byte [esp + 0x82], bl
mov byte [esp + 0x83], bl
mov byte [esp + 0x84], 8
mov byte [esp + 0x85], al
mov byte [esp + 0x86], 4
mov byte [esp + 0x87], bl
mov byte [esp + 0x88], bl
mov byte [esp + 0x89], bl
mov byte [esp + 0x8a], bl
mov byte [esp + 0x8b], bl
mov byte [esp + 0x8c], bl
mov byte [esp + 0x8d], bl
mov byte [esp + 0x8e], 8
mov byte [esp + 0x8f], al
mov byte [esp + 0x90], 4
mov byte [esp + 0x91], 8
mov byte [esp + 0x92], bl
mov byte [esp + 0x93], bl
mov byte [esp + 0x94], bl
mov byte [esp + 0x95], bl
mov byte [esp + 0x96], bl
mov byte [esp + 0x97], bl
mov byte [esp + 0x98], 8
mov byte [esp + 0x99], al
mov byte [esp + 0x9a], 4
mov byte [esp + 0x9b], 8
mov byte [esp + 0x9c], 8
mov byte [esp + 0x9d], bl
mov byte [esp + 0x9e], bl
mov byte [esp + 0x9f], bl
mov dl, 0x20
mov byte [esp + 0xa0], bl
mov byte [esp + 0xcd], dl
mov byte [esp + 0xd7], dl
mov byte [esp + 0xd8], dl
mov dl, 0x40
mov byte [esp + 0xa1], bl
mov byte [esp + 0xa2], 8
mov byte [esp + 0xa3], al
mov byte [esp + 0xa4], 4
mov byte [esp + 0xa5], bl
mov byte [esp + 0xa6], bl
mov byte [esp + 0xa7], bl
mov byte [esp + 0xa8], bl
mov byte [esp + 0xa9], bl
mov byte [esp + 0xaa], bl
mov byte [esp + 0xab], bl
mov byte [esp + 0xac], 8
mov byte [esp + 0xad], al
mov byte [esp + 0xae], 4
mov byte [esp + 0xaf], 1
mov byte [esp + 0xb0], bl
mov byte [esp + 0xb1], bl
mov byte [esp + 0xb2], bl
mov byte [esp + 0xb3], bl
mov byte [esp + 0xb4], bl
mov byte [esp + 0xb5], bl
mov byte [esp + 0xb6], 8
mov byte [esp + 0xb7], al
mov byte [esp + 0xb8], 4
mov byte [esp + 0xb9], 1
mov byte [esp + 0xba], 1
mov byte [esp + 0xbb], bl
mov byte [esp + 0xbc], bl
mov byte [esp + 0xbd], bl
mov byte [esp + 0xbe], bl
mov byte [esp + 0xbf], bl
mov byte [esp + 0xc0], 8
mov byte [esp + 0xc1], al
mov byte [esp + 0xc2], 4
mov byte [esp + 0xc3], bl
mov byte [esp + 0xc4], bl
mov byte [esp + 0xc5], bl
mov byte [esp + 0xc6], bl
mov byte [esp + 0xc7], bl
mov byte [esp + 0xc8], bl
mov byte [esp + 0xc9], bl
mov byte [esp + 0xca], 8
mov byte [esp + 0xcb], al
mov byte [esp + 0xcc], 4
mov byte [esp + 0xce], bl
mov byte [esp + 0xcf], bl
mov byte [esp + 0xd0], bl
mov byte [esp + 0xd1], bl
mov byte [esp + 0xd2], bl
mov byte [esp + 0xd3], bl
mov byte [esp + 0xd4], 8
mov byte [esp + 0xd5], al
mov byte [esp + 0xd6], 4
mov byte [esp + 0xd9], bl
mov byte [esp + 0xda], bl
mov byte [esp + 0xdb], bl
mov byte [esp + 0xdc], bl
mov byte [esp + 0xdd], bl
mov byte [esp + 0xde], 8
mov byte [esp + 0xdf], al
mov byte [esp + 0xe0], 4
mov byte [esp + 0xe1], bl
mov byte [esp + 0xe2], bl
mov byte [esp + 0xe3], bl
mov byte [esp + 0xe4], bl
mov byte [esp + 0xe5], bl
mov byte [esp + 0xe6], bl
mov byte [esp + 0xe7], bl
mov byte [esp + 0xe8], 8
mov byte [esp + 0xe9], al
mov byte [esp + 0xea], 4
mov byte [esp + 0xeb], bl
mov byte [esp + 0xec], bl
mov byte [esp + 0xed], dl
mov byte [esp + 0xee], bl
mov byte [esp + 0xf7], dl
mov byte [esp + 0xf8], dl
mov dl, 0x10
mov byte [esp + 0x127], cl
mov byte [esp + 0x109], dl
mov byte [esp + 0x113], dl
mov byte [esp + 0x114], dl
mov edx, dword [edi]
mov byte [esp + 0x128], cl
mov ecx, edi
mov byte [esp + 0xef], bl
mov byte [esp + 0xf0], bl
mov byte [esp + 0xf1], bl
mov byte [esp + 0xf2], 8
mov byte [esp + 0xf3], al
mov byte [esp + 0xf4], 4
mov byte [esp + 0xf5], bl
mov byte [esp + 0xf6], bl
mov byte [esp + 0xf9], bl
mov byte [esp + 0xfa], bl
mov byte [esp + 0xfb], bl
mov byte [esp + 0xfc], 8
mov byte [esp + 0xfd], al
mov byte [esp + 0xfe], 4
mov byte [esp + 0xff], bl
mov byte [esp + 0x100], bl
mov byte [esp + 0x101], bl
mov byte [esp + 0x102], bl
mov byte [esp + 0x103], bl
mov byte [esp + 0x104], bl
mov byte [esp + 0x105], bl
mov byte [esp + 0x106], 8
mov byte [esp + 0x107], al
mov byte [esp + 0x108], 4
mov byte [esp + 0x10a], bl
mov byte [esp + 0x10b], bl
mov byte [esp + 0x10c], bl
mov byte [esp + 0x10d], bl
mov byte [esp + 0x10e], bl
mov byte [esp + 0x10f], bl
mov byte [esp + 0x110], 8
mov byte [esp + 0x111], al
mov byte [esp + 0x112], 4
mov byte [esp + 0x115], bl
mov byte [esp + 0x116], bl
mov byte [esp + 0x117], bl
mov byte [esp + 0x118], bl
mov byte [esp + 0x119], bl
mov byte [esp + 0x11a], 8
mov byte [esp + 0x11b], al
mov byte [esp + 0x11c], 4
mov byte [esp + 0x11d], bl
mov byte [esp + 0x11e], bl
mov byte [esp + 0x11f], bl
mov byte [esp + 0x120], bl
mov byte [esp + 0x121], bl
mov byte [esp + 0x122], bl
mov byte [esp + 0x123], bl
mov byte [esp + 0x124], 8
mov byte [esp + 0x125], al
mov byte [esp + 0x126], 4
mov byte [esp + 0x129], bl
mov byte [esp + 0x12a], bl
mov byte [esp + 0x12b], bl
mov byte [esp + 0x12c], bl
mov byte [esp + 0x12d], bl
mov byte [esp + 0x12e], 8
mov byte [esp + 0x12f], al
mov byte [esp + 0x130], 4
mov byte [esp + 0x131], bl
mov byte [esp + 0x132], bl
mov byte [esp + 0x133], bl
mov byte [esp + 0x134], bl
mov byte [esp + 0x135], bl
mov byte [esp + 0x136], bl
mov byte [esp + 0x137], bl
call dword [edx + 0x18]
test ax, ax
jne 0x51c7b8
lea ecx, [esp + 0x140]
mov byte [esp + 0x1dc], 7
call fcn.0061d8c0
lea ecx, [esp + 0x138]
mov byte [esp + 0x1dc], 6
call fcn.0061d8c0
mov eax, dword [esp + 0x14]
cmp eax, ebx
je 0x51c71b
lea ecx, [eax - 1]
mov al, byte [eax - 1]
cmp al, bl
je 0x51c712
cmp al, 0xff
je 0x51c712
dec al
mov byte [ecx], al
jmp 0x51c71b
push ecx
call fcn.006a64d0
add esp, 4
lea ecx, [esp + 0x1b4]
mov dword [esp + 0x14], ebx
mov dword [esp + 0x18], ebx
mov dword [esp + 0x1c], ebx
mov byte [esp + 0x1dc], 4
call fcn.00555f30
lea ecx, [esp + 0x24]
mov byte [esp + 0x1dc], 3
call fcn.0061d8c0
lea ecx, [esp + 0x170]
mov byte [esp + 0x1dc], 2
call fcn.0061ab90
mov eax, dword [esp + 0x14c]
cmp eax, ebx
je 0x51c788
lea ecx, [eax - 1]
mov al, byte [eax - 1]
cmp al, bl
je 0x51c77f
cmp al, 0xff
je 0x51c77f
dec al
mov byte [ecx], al
jmp 0x51c788
push ecx
call fcn.006a64d0
add esp, 4
lea ecx, [esp + 0x1e4]
mov dword [esp + 0x14c], ebx
mov dword [esp + 0x150], ebx
mov dword [esp + 0x154], ebx
mov dword [esp + 0x1dc], esi
call fcn.0061d8c0
xor ax, ax
jmp 0x51d2fc
push 5
lea ecx, [esp + 0x1e8]
call fcn.0061daa0
push ecx
mov byte [esp + 0x2f], al
mov ecx, esp
mov dword [esp + 0x30], esp
push 6
push 0x713764
call fcn.0061d820
lea eax, [esp + 0x15c]
push eax
call fcn.0061ca80
add esp, 8
mov esi, eax
mov eax, dword [esi + 8]
mov ecx, dword [0x6dd1fc]
mov ebp, eax
mov byte [esp + 0x1dc], 9
cmp ecx, ebp
jae 0x51c808
mov ebp, ecx
lea edx, [esp + 0x10]
cmp edx, esi
jne 0x51c82b
push ecx
push ebp
lea ecx, [esp + 0x18]
call fcn.004140f0
push ebx
push ebx
lea ecx, [esp + 0x18]
call fcn.004140f0
jmp 0x51c8ba
cmp ebp, ebx
jbe 0x51c878
cmp ebp, eax
jne 0x51c878
mov eax, dword [esi + 4]
cmp eax, ebx
jne 0x51c83f
mov eax, 0x6dd1f8
cmp byte [eax - 1], 0xfe
jae 0x51c878
push 1
lea ecx, [esp + 0x14]
call fcn.004138c0
mov eax, dword [esi + 4]
cmp eax, ebx
jne 0x51c85c
mov eax, 0x6dd1f8
mov dword [esp + 0x14], eax
mov ecx, dword [esi + 8]
mov dword [esp + 0x18], ecx
mov esi, dword [esi + 0xc]
mov dword [esp + 0x1c], esi
mov cl, byte [eax - 1]
inc cl
mov byte [eax - 1], cl
jmp 0x51c8ba
push 1
push ebp
lea ecx, [esp + 0x18]
call fcn.00414230
test al, al
je 0x51c8ba
mov esi, dword [esi + 4]
cmp esi, ebx
jne 0x51c894
mov esi, 0x6dd1f8
mov edi, dword [esp + 0x14]
mov ecx, ebp
mov eax, ecx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov ecx, dword [esp + 0x14]
mov edi, dword [esp + 0x13c]
mov dword [esp + 0x18], ebp
mov byte [ecx + ebp], bl
mov eax, dword [esp + 0x15c]
mov byte [esp + 0x1dc], 8
cmp eax, ebx
je 0x51c8ea
lea ecx, [eax - 1]
mov al, byte [eax - 1]
cmp al, bl
je 0x51c8e1
cmp al, 0xff
je 0x51c8e1
dec al
mov byte [ecx], al
jmp 0x51c8ea
push ecx
call fcn.006a64d0
add esp, 4
mov al, byte [esp + 0x2b]
mov dl, al
add dl, 0x3f
cmp al, 0xc9
mov byte [esp + 0x30], dl
je 0x51cf34
push ecx
lea eax, [esp + 0x1e8]
mov ecx, esp
mov dword [esp + 0x30], esp
push eax
call fcn.0061d790
mov ecx, dword [0x72baec]
call fcn.0062e250
push 1
push ecx
mov ecx, esp
mov dword [esp + 0x34], esp
push 6
push 0x713784
call fcn.0061d820
mov ecx, dword [0x72baec]
call fcn.0062e3d0
push 1
push ecx
mov ecx, esp
mov dword [esp + 0x34], esp
push 6
push 0x71377c
call fcn.0061d820
mov ecx, dword [0x72baec]
call fcn.0062e3d0
push 1
push ecx
mov ecx, esp
mov dword [esp + 0x34], esp
push 6
push 0x713774
call fcn.0061d820
mov ecx, dword [0x72baec]
call fcn.0062e3d0
mov cl, byte [esp + 0x10]
sub esp, 0x10
mov ebp, esp
mov dword [esp + 0x30], esp
mov byte [ebp], cl
mov dword [ebp + 4], ebx
mov dword [ebp + 8], ebx
mov dword [ebp + 0xc], ebx
mov edx, dword [esp + 0x28]
mov ecx, dword [0x6dd1fc]
mov eax, edx
cmp ecx, eax
mov dword [esp + 0x3c], eax
jae 0x51c9b1
mov eax, ecx
mov dword [esp + 0x3c], eax
lea esi, [esp + 0x20]
cmp ebp, esi
jne 0x51c9d0
push ecx
push eax
mov ecx, ebp
call fcn.004140f0
push ebx
push ebx
mov ecx, ebp
call fcn.004140f0
jmp 0x51ca56
cmp eax, ebx
jbe 0x51ca1c
cmp eax, edx
jne 0x51ca1c
mov ecx, dword [esp + 0x24]
cmp ecx, ebx
jne 0x51c9e5
mov ecx, 0x6dd1f8
cmp byte [ecx - 1], 0xfe
jae 0x51ca1c
push 1
mov ecx, ebp
call fcn.004138c0
mov eax, dword [esp + 0x24]
cmp eax, ebx
jne 0x51ca01
mov eax, 0x6dd1f8
mov dword [ebp + 4], eax
mov edx, dword [esp + 0x28]
mov dword [ebp + 8], edx
mov ecx, dword [esp + 0x2c]
mov dword [ebp + 0xc], ecx
mov cl, byte [eax - 1]
inc cl
mov byte [eax - 1], cl
jmp 0x51ca56
push 1
push eax
mov ecx, ebp
call fcn.00414230
test al, al
je 0x51ca56
mov esi, dword [esp + 0x24]
cmp esi, ebx
jne 0x51ca37
mov esi, 0x6dd1f8
mov eax, dword [esp + 0x3c]
mov edi, dword [ebp + 4]
mov ecx, eax
push eax
mov edx, ecx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov ecx, ebp
call fcn.00414210
push ecx
mov byte [esp + 0x1f0], 0xc
mov ecx, esp
mov dword [esp + 0x40], esp
push 6
push 0x71379c
call fcn.0061d820
mov ecx, dword [0x72baec]
mov byte [esp + 0x1f0], 8
call fcn.0062e450
mov ecx, dword [0x72baec]
call fcn.0062e830
movsx eax, ax
sub eax, ebx
je 0x51ccc7
dec eax
je 0x51caa9
dec eax
je 0x51cee5
jmp 0x51c8ff
cmp byte [0x72bd0c], bl
je 0x51cac6
push ecx
mov ecx, esp
mov dword [esp + 0x24], esp
push 1
push 0x713848
call fcn.0061d820
jmp 0x51cb13
mov eax, dword [esp + 0x30]
sub esp, 0x24
and eax, 0xff
mov ecx, esp
mov dword [esp + 0x44], esp
push ebx
lea eax, [eax + eax*2]
push 1
lea edx, [eax + eax*4]
lea eax, [esp + edx*2 + 0x60]
push eax
push ecx
lea ecx, [esp + 0x1e8]
call fcn.00556960
lea ecx, [esp + 0x194]
call fcn.0061ac40
push ecx
mov ecx, esp
mov dword [esp + 0x24], esp
push ecx
lea ecx, [esp + 0x178]
call fcn.0061afb0
lea ecx, [esp + 0x28]
call fcn.0061dab0
lea ecx, [esp + 0x24]
call fcn.0061dc40
test ax, ax
jle 0x51c8ff
push ecx
mov ecx, esp
mov dword [esp + 0x24], esp
push 6
push 0x71377c
call fcn.0061d820
lea edx, [esp + 0x1a8]
push edx
call fcn.0061ca80
add esp, 8
mov esi, eax
mov eax, dword [esi + 8]
mov edi, dword [0x6dd1fc]
mov ebp, eax
mov byte [esp + 0x1dc], 0xe
cmp edi, ebp
jae 0x51cb6c
mov ebp, edi
lea ecx, [esp + 0x10]
cmp ecx, esi
jne 0x51cbdd
cmp dword [esp + 0x18], ebp
jae 0x51cb7f
call fcn.006a6707
lea ecx, [esp + 0x10]
call fcn.00414b70
mov eax, dword [esp + 0x18]
sub eax, ebp
cmp eax, edi
jae 0x51cb94
mov edi, eax
cmp edi, ebx
jbe 0x51cbcd
mov edx, dword [esp + 0x14]
sub eax, edi
add ebp, edx
push eax
lea ecx, [edi + ebp]
push ecx
push ebp
call fcn.006a6c70
mov esi, dword [esp + 0x24]
add esp, 0xc
sub esi, edi
lea ecx, [esp + 0x10]
push ebx
push esi
call fcn.00414230
test al, al
je 0x51cbcd
push esi
lea ecx, [esp + 0x14]
call fcn.00414210
push ebx
push ebx
lea ecx, [esp + 0x18]
call fcn.004140f0
jmp 0x51cc65
cmp ebp, ebx
jbe 0x51cc2a
cmp ebp, eax
jne 0x51cc2a
mov eax, dword [esi + 4]
cmp eax, ebx
jne 0x51cbf1
mov eax, 0x6dd1f8
cmp byte [eax - 1], 0xfe
jae 0x51cc2a
push 1
lea ecx, [esp + 0x14]
call fcn.004138c0
mov eax, dword [esi + 4]
cmp eax, ebx
jne 0x51cc0e
mov eax, 0x6dd1f8
mov dword [esp + 0x14], eax
mov ecx, dword [esi + 8]
mov dword [esp + 0x18], ecx
mov esi, dword [esi + 0xc]
mov dword [esp + 0x1c], esi
mov cl, byte [eax - 1]
inc cl
mov byte [eax - 1], cl
jmp 0x51cc65
push 1
push ebp
lea ecx, [esp + 0x18]
call fcn.00414230
test al, al
je 0x51cc65
mov esi, dword [esi + 4]
cmp esi, ebx
jne 0x51cc46
mov esi, 0x6dd1f8
mov edi, dword [esp + 0x14]
mov ecx, ebp
mov eax, ecx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov ecx, dword [esp + 0x14]
mov dword [esp + 0x18], ebp
mov byte [ecx + ebp], bl
mov eax, dword [esp + 0x1a8]
mov byte [esp + 0x1dc], 8
cmp eax, ebx
je 0x51ccad
lea ecx, [eax - 1]
mov al, byte [eax - 1]
cmp al, bl
je 0x51cca4
cmp al, 0xff
je 0x51cca4
dec al
mov byte [ecx], al
mov dword [esp + 0x1a8], ebx
mov dword [esp + 0x1ac], ebx
mov dword [esp + 0x1b0], ebx
jmp 0x51c8ff
push ecx
call fcn.006a64d0
add esp, 4
mov dword [esp + 0x1a8], ebx
mov dword [esp + 0x1ac], ebx
mov dword [esp + 0x1b0], ebx
jmp 0x51c8ff
cmp byte [0x72bd0c], bl
je 0x51cce4
push ecx
mov ecx, esp
mov dword [esp + 0x24], esp
push 1
push 0x713848
call fcn.0061d820
jmp 0x51cd31
mov eax, dword [esp + 0x30]
sub esp, 0x24
and eax, 0xff
mov edx, esp
mov dword [esp + 0x44], esp
push ebx
lea eax, [eax + eax*2]
push 1
lea eax, [eax + eax*4]
lea ecx, [esp + eax*2 + 0x6a]
push ecx
push edx
lea ecx, [esp + 0x1e8]
call fcn.00556960
lea ecx, [esp + 0x194]
call fcn.0061ac40
push ecx
lea ecx, [esp + 0x174]
mov edx, esp
mov dword [esp + 0x24], esp
push edx
call fcn.0061afb0
lea ecx, [esp + 0x28]
call fcn.0061dab0
lea ecx, [esp + 0x24]
call fcn.0061dc40
test ax, ax
jle 0x51c8ff
push ecx
mov ecx, esp
mov dword [esp + 0x24], esp
push 6
push 0x713784
call fcn.0061d820
lea eax, [esp + 0x198]
push eax
call fcn.0061ca80
add esp, 8
mov esi, eax
mov eax, dword [esi + 8]
mov edi, dword [0x6dd1fc]
mov ebp, eax
mov byte [esp + 0x1dc], 0xd
cmp edi, ebp
jae 0x51cd8a
mov ebp, edi
lea ecx, [esp + 0x10]
cmp ecx, esi
jne 0x51cdfc
cmp dword [esp + 0x18], ebp
jae 0x51cd9d
call fcn.006a6707
lea ecx, [esp + 0x10]
call fcn.00414b70
mov eax, dword [esp + 0x18]
sub eax, ebp
cmp eax, edi
jae 0x51cdb2
mov edi, eax
cmp edi, ebx
jbe 0x51cdec
mov edx, dword [esp + 0x14]
sub eax, edi
push eax
lea ecx, [edx + ebp]
lea edx, [edi + ecx]
push edx
push ecx
call fcn.006a6c70
mov esi, dword [esp + 0x24]
add esp, 0xc
sub esi, edi
lea ecx, [esp + 0x10]
push ebx
push esi
call fcn.00414230
test al, al
je 0x51cdec
push esi
lea ecx, [esp + 0x14]
call fcn.00414210
push ebx
push ebx
lea ecx, [esp + 0x18]
call fcn.004140f0
jmp 0x51ce83
cmp ebp, ebx
jbe 0x51ce49
cmp ebp, eax
jne 0x51ce49
mov eax, dword [esi + 4]
cmp eax, ebx
jne 0x51ce10
mov eax, 0x6dd1f8
cmp byte [eax - 1], 0xfe
jae 0x51ce49
push 1
lea ecx, [esp + 0x14]
call fcn.004138c0
mov eax, dword [esi + 4]
cmp eax, ebx
jne 0x51ce2d
mov eax, 0x6dd1f8
mov dword [esp + 0x14], eax
mov ecx, dword [esi + 8]
mov dword [esp + 0x18], ecx
mov esi, dword [esi + 0xc]
mov dword [esp + 0x1c], esi
mov cl, byte [eax - 1]
inc cl
mov byte [eax - 1], cl
jmp 0x51ce83
push 1
push ebp
lea ecx, [esp + 0x18]
call fcn.00414230
test al, al
je 0x51ce83
mov esi, dword [esi + 4]
cmp esi, ebx
jne 0x51ce65
mov esi, 0x6dd1f8
mov edi, dword [esp + 0x14]
mov ecx, ebp
mov eax, ecx
push ebp
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
lea ecx, [esp + 0x14]
call fcn.00414210
mov eax, dword [esp + 0x198]
mov byte [esp + 0x1dc], 8
cmp eax, ebx
je 0x51cecb
lea ecx, [eax - 1]
mov al, byte [eax - 1]
cmp al, bl
je 0x51cec2
cmp al, 0xff
je 0x51cec2
dec al
mov byte [ecx], al
mov dword [esp + 0x198], ebx
mov dword [esp + 0x19c], ebx
mov dword [esp + 0x1a0], ebx
jmp 0x51c8ff
push ecx
call fcn.006a64d0
add esp, 4
mov dword [esp + 0x198], ebx
mov dword [esp + 0x19c], ebx
mov dword [esp + 0x1a0], ebx
jmp 0x51c8ff
cmp byte [0x72bd0c], bl
jne 0x51cf26
mov eax, dword [esp + 0x30]
sub esp, 0x24
and eax, 0xff
mov ecx, esp
mov dword [esp + 0x44], esp
push ebx
lea eax, [eax + eax*2]
push 1
lea edx, [eax + eax*4]
lea eax, [esp + edx*2 + 0x74]
push eax
push ecx
lea ecx, [esp + 0x1e8]
call fcn.00556960
lea ecx, [esp + 0x194]
call fcn.0061ac40
mov ecx, dword [esp + 0x13c]
mov edx, dword [ecx]
jmp 0x51d20f
mov esi, dword [esp + 0x30]
push ecx
lea eax, [esp + 0x1e8]
mov ecx, esp
mov dword [esp + 0x24], esp
push eax
call fcn.0061d790
mov ecx, dword [0x72baec]
call fcn.0062e250
push 1
push ecx
mov ecx, esp
mov dword [esp + 0x28], esp
push 6
push 0x713784
call fcn.0061d820
mov ecx, dword [0x72baec]
call fcn.0062e3d0
push 1
push ecx
mov ecx, esp
mov dword [esp + 0x28], esp
push 6
push 0x713774
call fcn.0061d820
mov ecx, dword [0x72baec]
call fcn.0062e3d0
mov dl, byte [esp + 0x10]
sub esp, 0x10
mov ecx, esp
mov dword [esp + 0x30], esp
mov byte [ecx], dl
mov dword [ecx + 4], ebx
mov dword [ecx + 8], ebx
mov dword [ecx + 0xc], ebx
mov eax, dword [0x6dd1fc]
lea edx, [esp + 0x20]
push eax
push ebx
push edx
call fcn.004136c0
push ecx
mov byte [esp + 0x1f0], 0xa
mov ecx, esp
mov dword [esp + 0x40], esp
push 6
push 0x71379c
call fcn.0061d820
mov ecx, dword [0x72baec]
mov byte [esp + 0x1f0], 8
call fcn.0062e450
mov ecx, dword [0x72baec]
call fcn.0062e830
movsx eax, ax
sub eax, ebx
je 0x51d00c
dec eax
je 0x51d1cd
jmp 0x51cf38
cmp byte [0x72bd0c], bl
je 0x51d029
push ecx
mov ecx, esp
mov dword [esp + 0x24], esp
push 1
push 0x713848
call fcn.0061d820
jmp 0x51d074
mov eax, esi
sub esp, 0x24
and eax, 0xff
mov ecx, esp
mov dword [esp + 0x44], esp
push ebx
lea eax, [eax + eax*2]
push 1
lea edx, [eax + eax*4]
lea eax, [esp + edx*2 + 0x60]
push eax
push ecx
lea ecx, [esp + 0x1e8]
call fcn.00556960
lea ecx, [esp + 0x194]
call fcn.0061ac40
push ecx
mov ecx, esp
mov dword [esp + 0x24], esp
push ecx
lea ecx, [esp + 0x178]
call fcn.0061afb0
lea ecx, [esp + 0x28]
call fcn.0061dab0
lea ecx, [esp + 0x24]
call fcn.0061dc40
test ax, ax
jle 0x51cf38
push ecx
mov ecx, esp
mov dword [esp + 0x24], esp
push 6
push 0x713784
call fcn.0061d820
lea edx, [esp + 0x15c]
push edx
call fcn.0061ca80
add esp, 8
mov esi, eax
mov eax, dword [esi + 8]
mov ecx, dword [0x6dd1fc]
mov ebp, eax
mov byte [esp + 0x1dc], 0xb
cmp ecx, ebp
jae 0x51d0cd
mov ebp, ecx
lea edx, [esp + 0x10]
cmp edx, esi
jne 0x51d0f0
push ecx
push ebp
lea ecx, [esp + 0x18]
call fcn.004140f0
push ebx
push ebx
lea ecx, [esp + 0x18]
call fcn.004140f0
jmp 0x51d178
cmp ebp, ebx
jbe 0x51d13d
cmp ebp, eax
jne 0x51d13d
mov eax, dword [esi + 4]
cmp eax, ebx
jne 0x51d104
mov eax, 0x6dd1f8
cmp byte [eax - 1], 0xfe
jae 0x51d13d
push 1
lea ecx, [esp + 0x14]
call fcn.004138c0
mov eax, dword [esi + 4]
cmp eax, ebx
jne 0x51d121
mov eax, 0x6dd1f8
mov dword [esp + 0x14], eax
mov ecx, dword [esi + 8]
mov dword [esp + 0x18], ecx
mov esi, dword [esi + 0xc]
mov dword [esp + 0x1c], esi
mov cl, byte [eax - 1]
inc cl
mov byte [eax - 1], cl
jmp 0x51d178
push 1
push ebp
lea ecx, [esp + 0x18]
call fcn.00414230
test al, al
je 0x51d178
mov esi, dword [esi + 4]
cmp esi, ebx
jne 0x51d159
mov esi, 0x6dd1f8
mov edi, dword [esp + 0x14]
mov ecx, ebp
mov eax, ecx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov ecx, dword [esp + 0x14]
mov dword [esp + 0x18], ebp
mov byte [ecx + ebp], bl
mov eax, dword [esp + 0x15c]
mov byte [esp + 0x1dc], 8
cmp eax, ebx
je 0x51d1a8
lea ecx, [eax - 1]
mov al, byte [eax - 1]
cmp al, bl
je 0x51d19f
cmp al, 0xff
je 0x51d19f
dec al
mov byte [ecx], al
jmp 0x51d1a8
push ecx
call fcn.006a64d0
add esp, 4
mov esi, dword [esp + 0x30]
mov edi, dword [esp + 0x13c]
mov dword [esp + 0x15c], ebx
mov dword [esp + 0x160], ebx
mov dword [esp + 0x164], ebx
jmp 0x51cf38
cmp byte [0x72bd0c], bl
jne 0x51d20b
and esi, 0xff
sub esp, 0x24
mov edx, esp
mov dword [esp + 0x44], esp
lea eax, [esi + esi*2]
push ebx
push 1
lea eax, [eax + eax*4]
lea ecx, [esp + eax*2 + 0x6a]
push ecx
push edx
lea ecx, [esp + 0x1e8]
call fcn.00556960
lea ecx, [esp + 0x194]
call fcn.0061ac40
mov edx, dword [edi]
mov ecx, edi
call dword [edx + 0x1c]
lea ecx, [esp + 0x140]
mov byte [esp + 0x1dc], 7
call fcn.0061d8c0
lea ecx, [esp + 0x138]
mov byte [esp + 0x1dc], 6
call fcn.0061d8c0
mov eax, dword [esp + 0x14]
cmp eax, ebx
je 0x51d25f
lea ecx, [eax - 1]
mov al, byte [eax - 1]
cmp al, bl
je 0x51d256
cmp al, 0xff
je 0x51d256
dec al
mov byte [ecx], al
jmp 0x51d25f
push ecx
call fcn.006a64d0
add esp, 4
lea ecx, [esp + 0x1b4]
mov dword [esp + 0x14], ebx
mov dword [esp + 0x18], ebx
mov dword [esp + 0x1c], ebx
mov byte [esp + 0x1dc], 4
call fcn.00555f30
lea ecx, [esp + 0x24]
mov byte [esp + 0x1dc], 3
call fcn.0061d8c0
lea ecx, [esp + 0x170]
mov byte [esp + 0x1dc], 2
call fcn.0061ab90
mov eax, dword [esp + 0x14c]
cmp eax, ebx
je 0x51d2cc
lea ecx, [eax - 1]
mov al, byte [eax - 1]
cmp al, bl
je 0x51d2c3
cmp al, 0xff
je 0x51d2c3
dec al
mov byte [ecx], al
jmp 0x51d2cc
push ecx
call fcn.006a64d0
add esp, 4
lea ecx, [esp + 0x1e4]
mov dword [esp + 0x14c], ebx
mov dword [esp + 0x150], ebx
mov dword [esp + 0x154], ebx
mov dword [esp + 0x1dc], 0xffffffff
call fcn.0061d8c0
mov ax, 1
mov ecx, dword [esp + 0x1d4]
pop edi
pop esi
pop ebp
mov dword fs:[0], ecx
pop ebx
add esp, 0x1d0
ret 4