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

Disassembly:
push ebp
lea ebp, [esp - 0x70]
sub esp, 0x130
mov ecx, dword [0x51e8b694]
xor eax, eax
cmp dword [ebp + 0x78], eax
mov dword [ebp + 0x38], 0xb86
mov dword [ebp + 0x4c], eax
mov dword [ebp + 0x50], eax
mov dword [ebp + 0x30], ecx
jne 0x51e1ecd4
mov eax, dword [0x51e8b690]
push ebx
push esi
push edi
push 5
lea esi, [eax + 0xe8]
pop ecx
lea edi, [ebp + 0x58]
rep movsd dword es:[edi], dword [esi]
mov cl, byte [eax + 0xe5]
mov ebx, dword [eax + 0xc]
mov byte [ebp + 0x6f], cl
mov ecx, ebx
shr ecx, 0x1b
and ecx, 1
mov esi, ebx
shr esi, 2
mov dword [ebp + 0x54], ecx
mov ecx, dword [ebp + 0x7c]
mov edx, 0xb6
and esi, 1
cmp ecx, edx
mov dword [ebp + 0x34], ebx
mov edi, 0x20000
ja 0x51e083ef
je 0x51e1f508
add edx, 0xfffffff5
cmp ecx, edx
jbe 0x51e1ece4
lea esi, [ecx - 0xac]
cmp esi, 9
ja case.default.0x51e0840d
mov ecx, dword [ebp + 0x64]
mov edi, dword [ebp + 0x5c]
mov edx, dword [ebp + 0x60]
mov ebx, dword [ebp + 0x58]
jmp dword [esi*4 + 0x51e07a2d]
push 0
push 0x1c5
push dword [eax + 0x70]
push dword [eax + 0x1c]
call fcn.51e0a2f3
add esp, 0x10
xor ebx, ebx
mov dword [ebp + 0x38], ebx
cmp dword [ebp + 0x78], ebx
pop edi
pop esi
pop ebx
jne 0x51e1fe51
mov eax, dword [ebp + 0x38]
add ebp, 0x70
leave
ret
mov edx, 0xe5
cmp ecx, edx
ja 0x51e08414
je 0x51e1f9f6
lea edx, [ecx - 0xb7]
cmp edx, 0xc
ja case.default.0x51e0840d
jmp dword [edx*4 + 0x51e07a55]
mov edx, 0x223
cmp ecx, edx
jbe 0x51e1fa1d
cmp ecx, 0x224
je 0x51e1fda2
cmp ecx, 0x400
jne case.default.0x51e0840d
jmp 0x51e08317
push dword [ebp + 0x78]
push eax
call fcn.51e14810
pop ecx
pop ecx
jmp 0x51e08282
je 0x51e1f165
mov edx, 0xa6
cmp ecx, edx
ja 0x51e1f08f
je 0x51e1f0b0
cmp ecx, 0x51
je 0x51e1ef9e
cmp ecx, 0x6a
je 0x51e1eeed
cmp ecx, 0x6c
je 0x51e1ee04
cmp ecx, 0xa1
jbe case.default.0x51e0840d
cmp ecx, 0xa3
jbe 0x51e1eda8
cmp ecx, 0xa5
ja case.default.0x51e0840d
xor edx, edx
cmp ecx, 0xa4
setne dl
inc edx
inc edx
mov esi, edx
test edi, ebx
je 0x51e1fe4a
cmp dword [eax + 0x70], 0xffffffff
je 0x51e1fe4a
xor ebx, ebx
push ebx
call fcn.51e1a416
test eax, eax
pop ecx
je 0x51e0831c
mov eax, dword [0x51e8b690]
add eax, 0x1c
push eax
call fcn.51e0ddf2
test eax, eax
pop ecx
je 0x51e1fb19
push ebx
push ebx
push esi
call fcn.51e41572
mov eax, dword [0x51e8b690]
push ebx
push ebx
push 0x87
push dword [eax + 0x70]
push dword [eax + 0x20]
call fcn.51e1171b
add esp, 0x20
jmp 0x51e1fc64
xor edx, edx
cmp ecx, 0xa2
setne dl
inc edx
inc edx
mov edi, edx
test bh, bh
jns 0x51e1fe4a
cmp dword [eax + 0x1c], 0xffffffff
je 0x51e1fe4a
xor ebx, ebx
push ebx
call fcn.51e1a416
test eax, eax
pop ecx
je 0x51e0831c
call fcn.51e0dc39
test eax, eax
push 1
je 0x51e1fc3b
push ebx
push edi
call fcn.51e41572
mov eax, dword [0x51e8b690]
push ebx
push ebx
push 0x87
push dword [eax + 0x74]
push dword [eax + 0x1c]
jmp 0x51e1ed9b
call fcn.51e18b0a
xor esi, esi
test al, 4
jne 0x51e1ee27
cmp dword [ebp + 0x54], esi
je case.default.0x51e0840d
mov eax, dword [0x51e8b690]
test byte [eax + 0x10], 2
je case.default.0x51e0840d
call fcn.51e18b0a
test al, 4
jne 0x51e1ee6a
mov eax, dword [0x51e8b690]
mov ecx, dword [eax + 0x70]
mov eax, ecx
inc eax
neg eax
sbb eax, eax
and eax, ecx
push eax
call fcn.51e42240
mov eax, dword [0x51e8b690]
pop ecx
mov ecx, dword [eax + 0x70]
cmp ecx, 0xffffffff
push esi
push esi
push esi
je 0x51e0830c
push ecx
push dword [eax + 0x1c]
call fcn.51e41a6f
jmp 0x51e1fc33
cmp byte [ebp + 0x6f], 4
jne 0x51e1ee7e
push 1
push esi
call fcn.51e1a52a
pop ecx
jmp 0x51e1f618
mov eax, dword [0x51e8b690]
mov ecx, dword [eax + 0x70]
cmp ecx, 0xffffffff
je case.default.0x51e0840d
test byte [eax + 0xc], 8
je case.default.0x51e0840d
lea edx, [ebp - 0x48]
push edx
push 1
push ecx
push dword [eax + 0x1c]
call fcn.51e14be8
lea eax, [ebp - 0x48]
push eax
mov eax, dword [ebp - 0x40]
call dword [eax + 0x84]
add esp, 0x14
test eax, eax
jne case.default.0x51e0840d
mov eax, dword [0x51e8b690]
push dword [eax + 0x70]
push 0xffffffffffffffff
call fcn.51e08fab
test ah, ah
pop ecx
pop ecx
js 0x51e08317
mov eax, dword [0x51e8b690]
mov ecx, dword [eax + 0x70]
mov dword [ebp + 0x5c], ecx
mov ecx, dword [eax + 0x70]
inc ecx
jmp 0x51e1fd4e
cmp byte [ebp + 0x6f], 0
jne 0x51e1ef3f
mov ecx, dword [eax + 0x1c]
cmp ecx, 0xffffffff
je 0x51e08317
lea edx, [ebp - 0x48]
push edx
xor esi, esi
inc esi
push esi
push dword [eax + 0x70]
push ecx
call fcn.51e14be8
mov eax, dword [0x51e8b690]
push esi
push dword [eax + 0x70]
push dword [eax + 0x1c]
call fcn.51e134a0
lea eax, [ebp - 0x48]
push eax
push 0xe
push esi
call fcn.51e17150
lea eax, [ebp - 0x48]
push eax
mov eax, dword [ebp - 0x40]
call dword [eax + 0xa8]
add esp, 0x2c
jmp 0x51e1ef42
xor esi, esi
inc esi
cmp byte [ebp + 0x6f], 1
jne 0x51e08317
mov eax, dword [ebp + 0x60]
sub eax, dword [ebp + 0x58]
cmp eax, esi
jne 0x51e08317
mov eax, dword [ebp + 0x64]
sub eax, dword [ebp + 0x5c]
cmp eax, esi
jne 0x51e08317
lea eax, [ebp - 0x48]
push eax
push esi
push dword [ebp + 0x5c]
push dword [ebp + 0x58]
call fcn.51e14be8
push esi
push dword [ebp + 0x5c]
push dword [ebp + 0x58]
call fcn.51e134a0
push esi
push 0
call fcn.51e1a52a
lea eax, [ebp - 0x48]
push eax
mov eax, dword [ebp - 0x40]
call dword [eax + 0xa8]
jmp 0x51e1f03c
movzx ecx, byte [ebp + 0x6f]
xor edi, edi
sub ecx, edi
je 0x51e1f044
dec ecx
je 0x51e1eff1
dec ecx
je 0x51e1efd6
dec ecx
dec ecx
jne 0x51e08317
test bl, 0x40
je 0x51e08317
mov eax, dword [ebp + 0x64]
sub eax, dword [ebp + 0x5c]
push 5
push eax
push 0xffffffffffffffff
push dword [ebp + 0x5c]
jmp 0x51e1f25b
test bh, 8
je 0x51e08317
mov eax, dword [ebp + 0x60]
sub eax, dword [ebp + 0x58]
push edi
push eax
push 0xffffffffffffffff
push dword [ebp + 0x58]
jmp 0x51e1f25b
mov eax, dword [ebp + 0x60]
sub eax, dword [ebp + 0x58]
xor esi, esi
inc esi
cmp eax, esi
jne 0x51e08317
mov eax, dword [ebp + 0x64]
sub eax, dword [ebp + 0x5c]
cmp eax, esi
jne 0x51e08317
lea eax, [ebp - 0x48]
push eax
push esi
push dword [ebp + 0x5c]
push dword [ebp + 0x58]
call fcn.51e14be8
push esi
push dword [ebp + 0x5c]
push dword [ebp + 0x58]
call fcn.51e134a0
push esi
push edi
call fcn.51e1a52a
lea eax, [ebp - 0x48]
push eax
call fcn.51e480aa
add esp, 0x28
jmp 0x51e08317
cmp byte [eax + 0xcc], 0
je 0x51e08317
mov ecx, dword [eax + 0x1c]
cmp ecx, 0xffffffff
je 0x51e08317
lea edx, [ebp - 0x48]
push edx
push 1
push dword [eax + 0x70]
push ecx
call fcn.51e14be8
mov eax, dword [0x51e8b690]
push 1
push dword [eax + 0x70]
push dword [eax + 0x1c]
call fcn.51e134a0
lea eax, [ebp - 0x48]
push eax
call fcn.51e480aa
add esp, 0x20
jmp 0x51e1fe2a
sub ecx, 0xa7
je 0x51e1f165
dec ecx
je 0x51e1f297
dec ecx
je 0x51e1f356
dec ecx
jne case.default.0x51e0840d
xor edi, edi
cmp dword [ebp + 0x54], edi
je 0x51e1f0bf
cmp esi, edi
je 0x51e1f50e
cmp byte [ebp + 0x6f], 0
jne 0x51e1f0fb
cmp dword [ebp + 0x54], edi
je 0x51e1f0ce
cmp esi, edi
je 0x51e1f0fb
mov ecx, dword [eax + 0x1c]
mov dword [ebp + 0x58], ecx
mov ecx, dword [eax + 0x1c]
inc ecx
mov dword [ebp + 0x60], ecx
mov ecx, dword [eax + 0x70]
mov dword [ebp + 0x5c], ecx
mov ecx, dword [eax + 0x70]
cmp ecx, dword [eax + 0x88]
jbe 0x51e1f0ef
dec dword [ebp + 0x5c]
mov ecx, dword [eax + 0x70]
mov byte [ebp + 0x69], 9
jmp 0x51e1f2e8
test byte [ebp + 0x6f], 5
je 0x51e08317
cmp dword [ebp + 0x54], edi
je 0x51e1f112
cmp esi, edi
je 0x51e08317
mov cl, byte [ebp + 0x69]
test cl, 8
mov edx, dword [ebp + 0x5c]
je 0x51e1f12b
cmp edx, dword [eax + 0x88]
jbe 0x51e1f15a
dec edx
mov dword [ebp + 0x5c], edx
jmp 0x51e1f154
lea esi, [edx + 1]
cmp dword [ebp + 0x64], esi
jne 0x51e1f14a
cmp edx, dword [eax + 0x88]
jbe 0x51e1f13f
dec edx
mov dword [ebp + 0x5c], edx
and cl, 0xfb
or cl, 8
mov byte [ebp + 0x69], cl
jmp 0x51e1f154
dec dword [ebp + 0x64]
mov dword [ebp + 0x50], 1
cmp edx, dword [eax + 0x88]
jb 0x51e08317
jmp 0x51e1fbe5
xor edi, edi
cmp dword [ebp + 0x54], edi
je 0x51e1f174
cmp esi, edi
je 0x51e1f5fc
cmp byte [ebp + 0x6f], 0
jne 0x51e1f1a4
cmp dword [ebp + 0x54], edi
je 0x51e1f183
cmp esi, edi
je 0x51e1f1a4
mov ecx, dword [eax + 0x1c]
mov dword [ebp + 0x58], ecx
mov ecx, dword [eax + 0x1c]
inc ecx
mov dword [ebp + 0x60], ecx
mov ecx, dword [eax + 0x70]
mov dword [ebp + 0x5c], ecx
mov ecx, dword [eax + 0x70]
inc ecx
inc ecx
mov byte [ebp + 0x69], 5
jmp 0x51e1f2e9
test byte [ebp + 0x6f], 5
je 0x51e08317
cmp dword [ebp + 0x54], edi
je 0x51e1f1bb
cmp esi, edi
je 0x51e08317
mov cl, byte [ebp + 0x69]
test cl, 4
je 0x51e1f1c8
xor eax, eax
inc eax
jmp 0x51e1f1dd
mov edx, dword [ebp + 0x64]
dec edx
cmp dword [ebp + 0x5c], edx
jne 0x51e1f1f5
xor eax, eax
and cl, 0xf7
inc eax
or cl, 4
mov byte [ebp + 0x69], cl
inc dword [ebp + 0x64]
push dword [ebp + 0x64]
mov dword [ebp + 0x50], eax
push eax
call fcn.51e0db90
mov eax, dword [0x51e8b690]
pop ecx
pop ecx
jmp 0x51e1f1f8
inc dword [ebp + 0x5c]
mov ecx, dword [ebp + 0x64]
cmp ecx, dword [eax + 0x7c]
ja 0x51e08317
jmp 0x51e1fbe5
cmp byte [eax + 0x121], 0
je 0x51e1f227
lea eax, [ebp + 0x7c]
push eax
mov dword [ebp + 0x7c], 1
call fcn.51e5e6de
jmp 0x51e1f618
cmp byte [ebp + 0x6f], 1
je 0x51e1f5c2
push 0
call fcn.51e09be0
jmp 0x51e1f618
cmp byte [ebp + 0x6f], 2
jne 0x51e1f26b
test byte [ebp + 0x35], 2
je case.default.0x51e0840d
mov eax, dword [ebp + 0x60]
sub eax, dword [ebp + 0x58]
push 0
push eax
push dword [ebp + 0x58]
push 0xffffffffffffffff
call fcn.51e09ec5
add esp, 0x10
mov dword [ebp + 0x4c], eax
jmp 0x51e1fe2a
cmp byte [ebp + 0x6f], 4
jne case.default.0x51e0840d
test byte [ebp + 0x34], 0x10
je case.default.0x51e0840d
mov eax, dword [ebp + 0x64]
sub eax, dword [ebp + 0x5c]
push 5
push eax
push dword [ebp + 0x5c]
jmp 0x51e1f259
cmp dword [ebp + 0x54], 0
jne 0x51e1f5a3
mov ecx, dword [0x51e8b69c]
xor edi, edi
cmp word [ecx + 0x537c], di
je 0x51e1f378
test byte [eax + 0x165], 1
je 0x51e1f378
mov bl, byte [ebp + 0x6f]
test bl, bl
jne 0x51e1f40e
cmp dword [ebp + 0x54], edi
jne 0x51e08317
mov ecx, dword [eax + 0x1c]
mov dword [ebp + 0x58], ecx
mov ecx, dword [eax + 0x1c]
inc ecx
inc ecx
mov dword [ebp + 0x60], ecx
mov ecx, dword [eax + 0x70]
mov dword [ebp + 0x5c], ecx
mov ecx, dword [eax + 0x70]
mov byte [ebp + 0x69], 5
inc ecx
mov dword [ebp + 0x64], ecx
cmp dword [eax + 0x1c], 0xffffffff
jne 0x51e1f2f8
mov ecx, dword [eax + 0x20]
mov dword [eax + 0x1c], ecx
lea ecx, [ebp - 0xc0]
push ecx
push 1
push dword [eax + 0x70]
push dword [eax + 0x1c]
call fcn.51e14be8
or dword [ebp - 0xc0], 1
lea eax, [ebp - 0xc0]
push eax
mov eax, dword [ebp - 0xb8]
call dword [eax + 0x84]
add esp, 0x14
test eax, eax
jne 0x51e1f33c
mov eax, dword [0x51e8b690]
test byte [eax + 0xc], 2
jne 0x51e1fbef
lea eax, [ebp - 0xc0]
push eax
push 1
push edi
push edi
jmp 0x51e1fc6a
cmp dword [ebp + 0x54], 0
jne 0x51e1f5d1
mov ecx, dword [0x51e8b69c]
xor edi, edi
cmp word [ecx + 0x537c], di
je 0x51e1f2b9
test byte [eax + 0x165], 1
je 0x51e1f2b9
mov bl, byte [ebp + 0x6f]
test bl, bl
jne 0x51e1f3b0
cmp dword [ebp + 0x54], edi
jne 0x51e08317
mov ecx, dword [eax + 0x1c]
mov dword [ebp + 0x58], ecx
cmp ecx, dword [eax + 0x34]
jbe 0x51e1f397
dec ecx
mov dword [ebp + 0x58], ecx
mov ecx, dword [eax + 0x1c]
inc ecx
mov dword [ebp + 0x60], ecx
mov ecx, dword [eax + 0x70]
mov dword [ebp + 0x5c], ecx
mov ecx, dword [eax + 0x70]
mov byte [ebp + 0x69], 6
jmp 0x51e1f2e8
cmp bl, 2
je 0x51e1f3be
cmp bl, 1
jne 0x51e08317
mov dl, byte [ebp + 0x69]
test dl, 2
je 0x51e1f3ce
dec dword [ebp + 0x58]
mov ecx, dword [ebp + 0x60]
jmp 0x51e1f3f4
mov ecx, dword [ebp + 0x58]
lea esi, [ecx + 1]
mov ecx, dword [ebp + 0x60]
cmp ecx, esi
jne 0x51e1f3e9
dec dword [ebp + 0x58]
and dl, 0xfe
or dl, 2
mov byte [ebp + 0x69], dl
jmp 0x51e1f3f4
dec ecx
mov dword [ebp + 0x60], ecx
mov dword [ebp + 0x50], 1
mov edx, dword [ebp + 0x58]
cmp edx, dword [eax + 0x34]
jb 0x51e08317
cmp bl, 2
je 0x51e1faef
jmp 0x51e1fbf2
cmp bl, 2
je 0x51e1f41c
cmp bl, 1
jne 0x51e08317
mov dl, byte [ebp + 0x69]
test dl, 1
mov ecx, dword [ebp + 0x60]
jne 0x51e1f438
lea esi, [ecx - 1]
cmp dword [ebp + 0x58], esi
jne 0x51e1f445
and dl, 0xfd
or dl, 1
mov byte [ebp + 0x69], dl
inc ecx
mov dword [ebp + 0x50], 1
mov dword [ebp + 0x60], ecx
jmp 0x51e1f448
inc dword [ebp + 0x58]
cmp ecx, dword [eax + 0x28]
ja 0x51e08317
jmp 0x51e1f400
cmp byte [ebp + 0x6f], 2
jne 0x51e08317
cmp ebx, dword [eax + 0x38]
jbe 0x51e08317
lea esi, [ebx - 1]
jmp 0x51e1f481
cmp byte [ebp + 0x6f], 2
jne 0x51e08317
cmp edx, dword [eax + 0x28]
je 0x51e08317
lea esi, [edx + 1]
test byte [ebp + 0x35], 0x10
je 0x51e08317
push 0
sub edx, ebx
push edx
push esi
push ebx
call fcn.51e09ec5
push 1
push 0
dec esi
push esi
mov dword [ebp + 0x4c], eax
call fcn.51e134a0
add esp, 0x1c
jmp 0x51e1fe2a
cmp byte [ebp + 0x6f], 4
jne 0x51e08317
cmp edi, dword [eax + 0x8c]
jbe 0x51e08317
lea esi, [edi - 1]
jmp 0x51e1f4de
cmp byte [ebp + 0x6f], 4
jne 0x51e08317
cmp ecx, dword [eax + 0x7c]
je 0x51e08317
lea esi, [ecx + 1]
test byte [ebp + 0x34], 0x80
je 0x51e08317
push 5
sub ecx, edi
push ecx
push esi
push edi
call fcn.51e09ec5
push 1
dec esi
push esi
push 0
jmp 0x51e1f49d
push 0
push 0x1c6
jmp 0x51e08309
cmp dword [ebp + 0x54], 0
je 0x51e1f512
push 1
jmp 0x51e1f4fe
cmp byte [ebp + 0x6f], 2
je 0x51e1f5c2
push edx
jmp 0x51e1f613
cmp byte [ebp + 0x6f], 2
je 0x51e1f5c2
mov ecx, dword [eax + 0x1c]
cmp ecx, 0xffffffff
je case.default.0x51e0840d
test bh, 1
je case.default.0x51e0840d
lea edx, [ebp - 0x48]
push edx
push 1
push dword [eax + 0x70]
push ecx
call fcn.51e14be8
lea eax, [ebp - 0x48]
push eax
mov eax, dword [ebp - 0x40]
call dword [eax + 0x84]
add esp, 0x14
test eax, eax
jne case.default.0x51e0840d
mov eax, dword [0x51e8b690]
push 0xffffffffffffffff
push dword [eax + 0x1c]
call fcn.51e08fab
test ah, 0x40
pop ecx
pop ecx
jne 0x51e08317
mov eax, dword [0x51e8b690]
mov ecx, dword [eax + 0x1c]
mov dword [ebp + 0x58], ecx
mov ecx, dword [eax + 0x1c]
inc ecx
mov dword [ebp + 0x60], ecx
mov byte [ebp + 0x69], 5
jmp 0x51e1faef
cmp dword [ebp + 0x54], 0
je 0x51e1f5bc
add eax, 0x1c
push eax
call fcn.51e0ddf2
test eax, eax
pop ecx
je 0x51e08317
xor eax, eax
push eax
push eax
push eax
jmp 0x51e1f5e9
cmp byte [ebp + 0x6f], 4
jne 0x51e1f612
push 1
push 0
jmp 0x51e1ee73
cmp dword [ebp + 0x54], 0
je 0x51e1f612
add eax, 0x1c
push eax
call fcn.51e0ddf2
test eax, eax
pop ecx
je 0x51e08317
push 0
push 0
push 1
call fcn.51e41572
add esp, 0xc
jmp 0x51e08317
cmp dword [ebp + 0x54], 0
je 0x51e1f612
mov ecx, dword [eax + 0x1c]
xor edx, edx
cmp ecx, 0xffffffff
setne dl
push edx
push 0x1c5
jmp 0x51e1f7bc
push ecx
call fcn.51e420e8
pop ecx
jmp 0x51e08317
mov ecx, dword [0x51e8b69c]
test byte [ecx + 0x7d], 0x80
jne case.default.0x51e0840d
cmp dword [ebp + 0x54], 0
jne case.default.0x51e0840d
cmp byte [ebp + 0x6f], 4
jne 0x51e1f73e
mov ecx, dword [eax + 0x88]
cmp dword [ebp + 0x5c], ecx
jne 0x51e1f659
mov edx, dword [ebp + 0x64]
cmp edx, dword [eax + 0x78]
je case.default.0x51e0840d
cmp dword [eax + 0x78], ecx
jbe case.default.0x51e0840d
mov ecx, dword [eax + 0x70]
mov dword [eax + 0x90], ecx
cmp dword [eax + 0x18], 0
je 0x51e1f730
cmp byte [eax + 0x15d], 0
jne 0x51e1f730
mov edi, dword [eax + 0x78]
xor ebx, ebx
mov dword [ebp + 0x3c], 1
mov dword [ebp + 0x40], 2
mov dword [ebp + 0x44], ebx
mov eax, dword [eax + 0x7c]
sub eax, edi
cmp eax, 0xffff
mov dword [ebp + 0x48], eax
jbe 0x51e1f6ae
mov dword [ebp + 0x48], 0x64
lea eax, [ebp + 0x3c]
push eax
push ebx
push 0xb11
call fcn.51e15650
mov esi, eax
add esp, 0xc
cmp esi, edi
jae 0x51e1f6c8
mov esi, edi
cmp dword [ebp + 0x3c], ebx
jne 0x51e1f6eb
mov eax, dword [0x51e8b690]
lea ecx, [eax + 0x88]
mov dword [eax + 0x18], ebx
cmp dword [ecx], esi
mov edx, esi
jbe 0x51e1f6f1
mov dword [eax + 0x8c], esi
mov dword [ecx], esi
jmp 0x51e1f6f1
mov eax, dword [ebp + 0x48]
lea edx, [esi + eax]
push edx
call fcn.51e05972
mov eax, dword [0x51e8b690]
cmp dword [eax + 0x78], edi
pop ecx
jne 0x51e1f71c
push 1
mov dword [eax + 0x78], esi
or dword [eax + 0x80], 0xffffffff
push 1
call fcn.51e086cd
mov eax, dword [0x51e8b690]
pop ecx
pop ecx
push 1
push ebx
push ebx
push dword [eax + 0x74]
call fcn.51e0e0e4
mov eax, dword [0x51e8b690]
add esp, 0x10
mov ecx, dword [eax + 0x88]
mov dword [ebp + 0x5c], ecx
jmp 0x51e1fddd
cmp byte [ebp + 0x6f], 1
jne case.default.0x51e0840d
cmp dword [ebp + 0x58], 0
jne 0x51e1f75a
mov ecx, dword [ebp + 0x60]
cmp ecx, dword [eax + 0x28]
je case.default.0x51e0840d
mov ecx, dword [eax + 0x1c]
mov dword [eax + 0x3c], ecx
jmp 0x51e1fde3
cmp byte [ebp + 0x6f], 4
je 0x51e1f775
cmp byte [ebp + 0x6f], 1
jne case.default.0x51e0840d
cmp dword [ebp + 0x54], 0
jne case.default.0x51e0840d
mov ecx, dword [ebp + 0x64]
sub ecx, dword [ebp + 0x5c]
cmp ecx, 1
jne 0x51e1f7c5
mov ecx, dword [eax + 0x3c]
cmp ecx, 0xffffffff
je 0x51e08317
test bl, 2
je 0x51e1f7b5
mov edx, dword [ebp + 0x60]
sub edx, dword [ebp + 0x58]
cmp edx, 1
je 0x51e1f7b5
mov dword [ebp + 0x58], ecx
mov ecx, dword [eax + 0x3c]
inc ecx
mov dword [ebp + 0x60], ecx
jmp 0x51e1fbf2
push 2
push 0x101
push dword [eax + 0x70]
push ecx
jmp 0x51e0830f
lea ecx, [eax + 0x90]
cmp dword [ecx], 0xffffffff
je 0x51e08317
mov edx, dword [ecx]
mov dword [ebp + 0x5c], edx
mov ecx, dword [ecx]
inc ecx
jmp 0x51e1fde0
cmp dword [ebp + 0x54], 0
jne 0x51e08317
push 2
push 0x1c5
push dword [eax + 0x70]
jmp 0x51e1f8fe
cmp dword [ebp + 0x54], 0
jne 0x51e08317
push 2
push 0x1c6
push dword [eax + 0x70]
jmp 0x51e1f9ee
push 1
push 0x1c5
push 0xffffffffffffffff
jmp 0x51e0830c
cmp dword [eax + 0x18], 0
je 0x51e1f8e6
cmp byte [eax + 0x15d], 0
jne 0x51e1f8e6
mov edi, dword [eax + 0x78]
xor ebx, ebx
mov dword [ebp + 0x3c], 1
mov dword [ebp + 0x40], 2
mov dword [ebp + 0x44], ebx
mov eax, dword [eax + 0x7c]
sub eax, edi
cmp eax, 0xffff
mov dword [ebp + 0x48], eax
jbe 0x51e1f864
mov dword [ebp + 0x48], 0x64
lea eax, [ebp + 0x3c]
push eax
push ebx
push 0xb11
call fcn.51e15650
mov esi, eax
add esp, 0xc
cmp esi, edi
jae 0x51e1f87e
mov esi, edi
cmp dword [ebp + 0x3c], ebx
jne 0x51e1f8a1
mov eax, dword [0x51e8b690]
lea ecx, [eax + 0x88]
mov dword [eax + 0x18], ebx
cmp dword [ecx], esi
mov edx, esi
jbe 0x51e1f8a7
mov dword [eax + 0x8c], esi
mov dword [ecx], esi
jmp 0x51e1f8a7
mov eax, dword [ebp + 0x48]
lea edx, [esi + eax]
push edx
call fcn.51e05972
mov eax, dword [0x51e8b690]
cmp dword [eax + 0x78], edi
pop ecx
jne 0x51e1f8d2
push 1
mov dword [eax + 0x78], esi
or dword [eax + 0x80], 0xffffffff
push 1
call fcn.51e086cd
mov eax, dword [0x51e8b690]
pop ecx
pop ecx
push 1
push ebx
push ebx
push dword [eax + 0x74]
call fcn.51e0e0e4
mov eax, dword [0x51e8b690]
add esp, 0x10
push 1
push 0x1c6
push dword [eax + 0x78]
jmp 0x51e0830c
push 0
push 0x1c5
push 0
push 0xffffffffffffffff
jmp 0x51e0830f
cmp dword [eax + 0x18], 0
je 0x51e1f9ca
cmp byte [eax + 0x15d], 0
jne 0x51e1f9ca
mov edi, dword [eax + 0x78]
xor ebx, ebx
mov dword [ebp + 0x3c], 1
mov dword [ebp + 0x40], 2
mov dword [ebp + 0x44], ebx
mov eax, dword [eax + 0x7c]
sub eax, edi
cmp eax, 0xffff
mov dword [ebp + 0x48], eax
jbe 0x51e1f948
mov dword [ebp + 0x48], 0x64
lea eax, [ebp + 0x3c]
push eax
push ebx
push 0xb11
call fcn.51e15650
mov esi, eax
add esp, 0xc
cmp esi, edi
jae 0x51e1f962
mov esi, edi
cmp dword [ebp + 0x3c], ebx
jne 0x51e1f985
mov eax, dword [0x51e8b690]
lea ecx, [eax + 0x88]
mov dword [eax + 0x18], ebx
cmp dword [ecx], esi
mov edx, esi
jbe 0x51e1f98b
mov dword [eax + 0x8c], esi
mov dword [ecx], esi
jmp 0x51e1f98b
mov eax, dword [ebp + 0x48]
lea edx, [esi + eax]
push edx
call fcn.51e05972
mov eax, dword [0x51e8b690]
cmp dword [eax + 0x78], edi
pop ecx
jne 0x51e1f9b6
push 1
mov dword [eax + 0x78], esi
or dword [eax + 0x80], 0xffffffff
push 1
call fcn.51e086cd
mov eax, dword [0x51e8b690]
pop ecx
pop ecx
push 1
push ebx
push ebx
push dword [eax + 0x74]
call fcn.51e0e0e4
mov eax, dword [0x51e8b690]
add esp, 0x10
mov esi, dword [eax + 0x78]
dec esi
je 0x51e1f9e6
push 0
push esi
call fcn.51e0dbb5
test eax, eax
pop ecx
pop ecx
jne 0x51e1f9e1
dec esi
jne 0x51e1f9d0
mov eax, dword [0x51e8b690]
push 0
push 0x1c6
push esi
push dword [eax + 0x24]
jmp 0x51e0830f
cmp byte [ebp + 0x6f], 0
je case.default.0x51e0840d
push 1
xor esi, esi
push esi
call fcn.51e1a52a
push esi
push 1
push esi
push 1
call fcn.51e0a4f4
add esp, 0x18
jmp 0x51e08317
je 0x51e1fd57
cmp ecx, 0xf6
je 0x51e1fc74
cmp ecx, 0x147
jbe case.default.0x51e0840d
cmp ecx, 0x149
jbe 0x51e1fb44
cmp ecx, 0x14b
ja case.default.0x51e0840d
xor edx, edx
cmp ecx, 0x14a
setne dl
inc edx
inc edx
cmp byte [ebp + 0x6f], 2
mov esi, edx
je 0x51e1fa72
cmp byte [ebp + 0x6f], 1
jne 0x51e1ed47
test edi, ebx
je 0x51e1fe4a
add eax, 0x1c
push eax
call fcn.51e0ddf2
test eax, eax
pop ecx
je 0x51e1fa9f
push 0
push 0
push esi
call fcn.51e41572
mov eax, dword [0x51e8b690]
mov ecx, dword [eax + 0x20]
add esp, 0xc
jmp 0x51e1fab2
cmp esi, 3
mov eax, dword [0x51e8b690]
jne 0x51e1faaf
mov ecx, dword [eax + 0x28]
dec ecx
jmp 0x51e1fab2
mov ecx, dword [eax + 0x34]
mov edx, dword [eax + 0x1c]
cmp ecx, edx
jae 0x51e1facb
mov dl, byte [ebp + 0x69]
mov dword [ebp + 0x58], ecx
mov ecx, dword [eax + 0x1c]
and dl, 0xfe
inc ecx
or dl, 2
jmp 0x51e1fadf
mov dword [ebp + 0x58], edx
mov dl, byte [ebp + 0x69]
and dl, 0xfd
inc ecx
or dl, 1
mov dword [ebp + 0x50], 1
cmp byte [ebp + 0x6f], 2
mov dword [ebp + 0x60], ecx
mov byte [ebp + 0x69], dl
jne 0x51e1fbf2
xor edx, edx
cmp dword [ebp + 0x50], edx
mov byte [ebp + 0x68], 2
mov dword [ebp + 0x5c], edx
mov eax, dword [eax + 0x7c]
mov dword [ebp + 0x64], eax
je 0x51e1fb06
dec ecx
jmp 0x51e1fb09
mov ecx, dword [ebp + 0x58]
push 1
push edx
push ecx
call fcn.51e134a0
push 4
jmp 0x51e1fc2a
cmp esi, 3
mov eax, dword [0x51e8b690]
push 2
jne 0x51e1fb35
push 0x1c6
push dword [eax + 0x70]
push dword [eax + 0x28]
jmp 0x51e1fc5c
push 0x1c5
push dword [eax + 0x70]
push 0xffffffffffffffff
jmp 0x51e1fc5c
xor edx, edx
cmp ecx, 0x148
setne dl
inc edx
inc edx
cmp dword [ebp + 0x54], 0
mov edi, edx
je 0x51e1fb61
test esi, esi
je 0x51e1edb7
cmp byte [ebp + 0x6f], 4
je 0x51e1fb71
cmp byte [ebp + 0x6f], 1
jne 0x51e1edb7
test bh, bh
jns 0x51e1fe4a
call fcn.51e0dc39
test eax, eax
je 0x51e1fb99
push 1
push 0
push edi
call fcn.51e41572
mov eax, dword [0x51e8b690]
mov ecx, dword [eax + 0x74]
add esp, 0xc
jmp 0x51e1fbaf
cmp edi, 3
mov eax, dword [0x51e8b690]
jne 0x51e1fba9
mov ecx, dword [eax + 0x7c]
dec ecx
jmp 0x51e1fbaf
mov ecx, dword [eax + 0x88]
mov edx, dword [eax + 0x70]
cmp ecx, edx
jae 0x51e1fbcb
mov dword [ebp + 0x5c], ecx
mov ecx, dword [eax + 0x70]
inc ecx
mov dword [ebp + 0x64], ecx
mov cl, byte [ebp + 0x69]
and cl, 0xfb
or cl, 8
jmp 0x51e1fbe2
inc ecx
mov dword [ebp + 0x64], ecx
mov cl, byte [ebp + 0x69]
and cl, 0xf7
mov dword [ebp + 0x5c], edx
or cl, 4
mov dword [ebp + 0x50], 1
mov byte [ebp + 0x69], cl
cmp byte [ebp + 0x68], 4
je 0x51e1fde3
mov ecx, dword [ebp + 0x60]
cmp dword [ebp + 0x50], 0
mov byte [ebp + 0x68], 1
je 0x51e1fc02
mov eax, dword [ebp + 0x64]
dec eax
jmp 0x51e1fc05
mov eax, dword [ebp + 0x5c]
cmp dword [ebp + 0x50], 0
je 0x51e1fc0e
dec ecx
jmp 0x51e1fc11
mov ecx, dword [ebp + 0x58]
push 1
push eax
push ecx
call fcn.51e134a0
mov al, byte [ebp + 0x6f]
and al, 0x20
neg al
sbb eax, eax
and eax, 0xc
add eax, 4
push eax
lea eax, [ebp + 0x58]
push eax
call fcn.51e41ccc
add esp, 0x14
jmp 0x51e08317
cmp edi, 3
mov eax, dword [0x51e8b690]
jne 0x51e1fc52
push 0x1c6
push dword [eax + 0x7c]
push dword [eax + 0x1c]
jmp 0x51e1fc5c
push 0x1c5
push 0xffffffffffffffff
push dword [eax + 0x1c]
call fcn.51e0a2f3
add esp, 0x10
push ebx
push ebx
push 1
push 1
call fcn.51e0a4f4
jmp 0x51e08314
cmp dword [eax + 0x18], 0
je 0x51e1fd39
cmp byte [eax + 0x15d], 0
jne 0x51e1fd39
mov edi, dword [eax + 0x78]
xor ebx, ebx
mov dword [ebp + 0x3c], 1
mov dword [ebp + 0x40], 2
mov dword [ebp + 0x44], ebx
mov eax, dword [eax + 0x7c]
sub eax, edi
cmp eax, 0xffff
mov dword [ebp + 0x48], eax
jbe 0x51e1fcb7
mov dword [ebp + 0x48], 0x64
lea eax, [ebp + 0x3c]
push eax
push ebx
push 0xb11
call fcn.51e15650
mov esi, eax
add esp, 0xc
cmp esi, edi
jae 0x51e1fcd1
mov esi, edi
cmp dword [ebp + 0x3c], ebx
jne 0x51e1fcf4
mov eax, dword [0x51e8b690]
lea ecx, [eax + 0x88]
mov dword [eax + 0x18], ebx
cmp dword [ecx], esi
mov edx, esi
jbe 0x51e1fcfa
mov dword [eax + 0x8c], esi
mov dword [ecx], esi
jmp 0x51e1fcfa
mov eax, dword [ebp + 0x48]
lea edx, [esi + eax]
push edx
call fcn.51e05972
mov eax, dword [0x51e8b690]
cmp dword [eax + 0x78], edi
pop ecx
jne 0x51e1fd25
push 1
mov dword [eax + 0x78], esi
or dword [eax + 0x80], 0xffffffff
push 1
call fcn.51e086cd
mov eax, dword [0x51e8b690]
pop ecx
pop ecx
push 1
push ebx
push ebx
push dword [eax + 0x74]
call fcn.51e0e0e4
mov eax, dword [0x51e8b690]
add esp, 0x10
mov ecx, dword [eax + 0x88]
cmp dword [eax + 0x78], ecx
jbe 0x51e08317
mov dword [ebp + 0x5c], ecx
mov ecx, dword [eax + 0x78]
mov byte [ebp + 0x69], 5
jmp 0x51e1fde0
cmp dword [ebp + 0x54], 0
je 0x51e08317
test esi, esi
je 0x51e08317
test byte [ebp + 0x6f], 4
je 0x51e08317
mov cl, byte [ebp + 0x69]
test cl, 4
je 0x51e1fd8b
mov edx, dword [ebp + 0x5c]
inc edx
and cl, 0xfb
or cl, 8
mov dword [ebp + 0x64], edx
mov byte [ebp + 0x69], cl
mov ecx, dword [eax + 0x88]
mov dword [ebp + 0x5c], ecx
jmp 0x51e1fde3
mov dword [ebp + 0x38], 0xb88
jmp 0x51e1fe4a
cmp dword [ebp + 0x54], 0
je 0x51e08317
test esi, esi
je 0x51e08317
test byte [ebp + 0x6f], 4
je 0x51e08317
mov cl, byte [ebp + 0x69]
test cl, 8
je 0x51e1fdd6
mov edx, dword [ebp + 0x64]
dec edx
and cl, 0xf7
or cl, 4
mov dword [ebp + 0x5c], edx
mov byte [ebp + 0x69], cl
mov dword [ebp + 0x50], 1
mov ecx, dword [eax + 0x78]
mov dword [ebp + 0x64], ecx
xor esi, esi
cmp dword [ebp + 0x50], esi
mov byte [ebp + 0x68], 4
mov dword [ebp + 0x58], esi
mov eax, dword [eax + 0x28]
mov dword [ebp + 0x60], eax
je 0x51e1fdfd
mov eax, dword [ebp + 0x64]
dec eax
jmp 0x51e1fe00
mov eax, dword [ebp + 0x5c]
push 1
push eax
push esi
call fcn.51e134a0
add esp, 0xc
cmp dword [ebp + 0x54], esi
je 0x51e1fe1b
test byte [ebp + 0x6f], 0x20
je 0x51e1fe1b
push 0x10
jmp 0x51e1fe1d
push 4
pop eax
push eax
lea eax, [ebp + 0x58]
push eax
call fcn.51e41ccc
pop ecx
pop ecx
cmp dword [ebp + 0x4c], 0
je 0x51e08317
xor eax, eax
cmp dword [ebp + 0x4c], eax
setle al
dec eax
and eax, 0xfffffc4b
add eax, 0xb86
mov dword [ebp + 0x38], eax
xor ebx, ebx
jmp 0x51e0831c
push dword [ebp + 0x30]
call fcn.51e14850
pop ecx
jmp 0x51e08328