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

Disassembly:
push 0xffffffffffffffff
push 0x60ff51
mov eax, dword fs:[0]
push eax
sub esp, 0x120
push ebx
push ebp
push esi
push edi
mov eax, dword [0x6e377c]
xor eax, esp
push eax
lea eax, [esp + 0x134]
mov dword fs:[0], eax
mov ebx, ecx
mov dword [esp + 0x70], ebx
mov esi, dword [esp + 0x148]
mov dword [esp + 0xa8], 0
test esi, esi
je 0x5237de
mov eax, dword [ebx + 4]
mov ecx, dword [ebx]
test eax, eax
jl 0x522a29
jg 0x522a0c
test ecx, ecx
jb 0x522a29
push 0
push 0x3e8
push eax
push ecx
call fcn.005bf600
mov ecx, edx
test ecx, ecx
jl 0x522a30
jg 0x522a29
cmp eax, 0x7fffffff
jb 0x522a30
or eax, 0xffffffff
or edx, eax
jmp 0x522a35
mov dword [esp + 0x3c], edx
cdq
mov edi, dword [esp + 0x14c]
mov dword [esp + 0x38], eax
and eax, edx
mov dword [esp + 0x3c], edx
cmp eax, 0xffffffff
je 0x522ae6
push 0x640eb8
push esi
call fcn.005bdc6d
add esp, 8
test eax, eax
jne 0x522ae6
mov ebp, dword [edi]
call fcn.00520c20
neg eax
cmp ebp, eax
jne 0x522aa5
lea eax, [esp + 0xd0]
push eax
lea ecx, [esp + 0x3c]
push ecx
call fcn.00520ba0
add esp, 8
test eax, eax
jne 0x522acf
mov edx, dword [0x6db93c]
mov esi, dword [esp + 0x144]
push edx
mov ecx, esi
call fcn.004030fb
jmp 0x523804
mov eax, dword [edi]
cdq
add dword [esp + 0x38], eax
adc dword [esp + 0x3c], edx
js 0x522ae6
jg 0x522abb
cmp dword [esp + 0x38], 0
jb 0x522ae6
lea eax, [esp + 0xd0]
push eax
lea ecx, [esp + 0x3c]
push ecx
call fcn.00520bd0
jmp 0x522a84
push esi
mov esi, dword [esp + 0x148]
mov ecx, eax
call fcn.005211c0
add esp, 4
jmp 0x523804
push edi
lea eax, [esp + 0x58]
push eax
mov ecx, ebx
call fcn.00521780
movzx ecx, word [esp + 0x5a]
movzx eax, word [esp + 0x56]
movzx edx, word [esp + 0x58]
xor ebp, ebp
mov dword [esp + 0xfc], ecx
mov dword [esp + 0xf4], eax
mov eax, dword [0x6db93c]
mov ecx, 1
mov dword [esp + 0xf8], edx
mov dword [esp + 0x10c], ebp
mov dword [esp + 0x110], ebp
mov dword [esp + 0x100], ecx
mov dword [esp + 0x104], ebp
mov dword [esp + 0x108], 0x4c
mov dword [esp + 0x114], ebp
mov dword [esp + 0xb0], eax
mov edx, eax
mov dword [esp + 0x13c], ecx
mov dword [esp + 0x14], edx
mov dword [esp + 0x18], eax
mov byte [esp + 0x13c], 3
mov dword [esp + 0x40], esi
cmp word [esi], bp
je 0x523742
jmp 0x522b8b
mov edi, dword [esp + 0x14c]
mov ebx, dword [esp + 0x70]
movzx eax, word [esi]
mov ebp, dword [esp + 0x64]
cmp ax, 0x25
je 0x522ba0
movzx eax, ax
jmp 0x523718
movzx eax, word [esi + 2]
add esi, 2
add eax, 0xffffffa7
mov dword [esp + 0x40], esi
cmp eax, 0x1e
ja case.0x522bba.90
movzx ecx, byte [eax + 0x523834]
jmp dword [ecx*4 + 0x523824]
push str._04d
jmp 0x522bdb
push str._03d
jmp 0x522bdb
push 0x640e60
jmp 0x522bdb
push str._02d
lea ecx, [esp + 0x1c]
call fcn.0050fe00
movzx eax, word [esi]
cmp eax, 0x79
ja case.0x522bf3.1
movzx edx, byte [eax + 0x5238ac]
jmp dword [edx*4 + 0x523854]
push 0
lea ecx, [esp + 0x1c]
call fcn.00511280
movzx eax, word [esi]
cmp ax, 0x2d
je 0x522c27
cmp ax, 0x2b
je 0x522c27
cmp ax, 0x20
je 0x522c27
push eax
call fcn.005bc8e9
add esp, 4
test eax, eax
je 0x522c38
movzx eax, word [esi]
push eax
push 1
lea ecx, [esp + 0x20]
call fcn.0050fd80
jmp 0x522c05
mov ecx, dword [esp + 0x18]
cmp dword [ecx - 8], 0
je case.0x522bf3.37
push 0x25
push 1
lea ecx, [esp + 0x7c]
call fcn.00510170
lea edx, [esp + 0x74]
push edx
lea ecx, [esp + 0x1c]
mov byte [esp + 0x140], 0x21
call fcn.00512350
mov ecx, dword [esp + 0x74]
mov eax, dword [ecx - 0xc]
add ecx, 0xfffffff4
mov byte [esp + 0x13c], 3
cmp eax, 0xffffffff
je 0x522c8c
add eax, 0xffffffff
mov dword [ecx], eax
jne 0x522c8c
call fcn.0050ec00
push 0x64
push 1
lea ecx, [esp + 0x20]
call fcn.0050fd80
jmp 0x522be4
cmp word [esp + 0x6c], 7
jne 0x522caf
lea ecx, [esp + 0x54]
call fcn.00520a30
movzx eax, word [esp + 0x6c]
xor ecx, ecx
cmp word [esi], 0x61
lea edx, [esp + 0xc4]
sete cl
inc ecx
push ecx
push eax
push edx
call fcn.005213d0
add esp, 0xc
mov eax, dword [eax]
mov ecx, dword [eax - 8]
push ecx
push eax
push ecx
lea ecx, [esp + 0x20]
mov byte [esp + 0x148], 4
call fcn.005101f0
mov ecx, dword [esp + 0xc4]
mov eax, dword [ecx - 0xc]
add ecx, 0xfffffff4
mov byte [esp + 0x13c], 3
cmp eax, 0xffffffff
je 0x523724
add eax, 0xffffffff
mov dword [ecx], eax
jne 0x523724
call fcn.0050ec00
jmp 0x523724
mov ecx, dword [esp + 0x60]
xor eax, eax
cmp word [esi], 0x62
lea edx, [esp + 0xb8]
sete al
inc eax
push eax
push ecx
push edx
call fcn.00521350
add esp, 0xc
mov eax, dword [eax]
mov ecx, dword [eax - 8]
push ecx
push eax
push ecx
lea ecx, [esp + 0x20]
mov byte [esp + 0x148], 5
call fcn.005101f0
mov ecx, dword [esp + 0xb8]
jmp 0x522cf0
push edi
lea eax, [esp + 0x11c]
push eax
mov ecx, ebx
call fcn.00521780
mov ecx, dword [eax + 0x10]
mov eax, 0x92492493
imul ecx
add edx, ecx
sar edx, 4
mov eax, edx
shr eax, 0x1f
add eax, edx
lea edx, [eax*8]
sub edx, eax
add edx, edx
add edx, edx
mov eax, ecx
sub eax, edx
cmp eax, 0xa
mov dword [esp + 0xac], ecx
lea ebp, [eax + 0x7c4]
jl 0x522dad
lea ebp, [eax + 0x7a8]
mov eax, 0x51eb851f
imul ebp
sar edx, 5
mov esi, edx
shr esi, 0x1f
add esi, edx
mov eax, 0x51eb851f
imul ecx
sar edx, 5
mov edi, edx
shr edi, 0x1f
add edi, edx
mov eax, edi
cdq
and edx, 3
add eax, edx
mov ecx, eax
mov eax, esi
cdq
and edx, 3
add eax, edx
sar eax, 2
sar ecx, 2
sub ecx, eax
sub ecx, edi
add ecx, esi
mov eax, 0x92492493
imul ecx
add edx, ecx
sar edx, 2
mov eax, edx
shr eax, 0x1f
add eax, edx
lea edx, [eax*8]
sub edx, eax
mov eax, ecx
sub eax, edx
je 0x522e52
nop
mov edx, ebp
and edx, reloc.WS2_32.dll_closesocket
jns 0x522e1f
dec edx
or edx, 0xfffffffc
inc edx
inc ebp
mov eax, 1
test edx, edx
jne 0x522e2e
mov eax, 2
add ecx, eax
mov eax, 0x92492493
imul ecx
add edx, ecx
sar edx, 2
mov eax, edx
shr eax, 0x1f
add eax, edx
lea edx, [eax*8]
sub edx, eax
mov eax, ecx
sub eax, edx
jne 0x522e10
cmp ebp, 0x7d0
jl 0x522e5d
sub ebp, 0x1c
mov eax, dword [0x6db93c]
mov dword [esp + 0x2c], eax
mov dword [esp + 0x28], eax
push ebp
lea ecx, [esp + 0x30]
push 0x640e60
push ecx
mov byte [esp + 0x148], 7
call fcn.00510ed0
mov eax, 0x51eb851f
imul ebp
sar edx, 5
mov eax, edx
shr eax, 0x1f
add eax, edx
imul eax, eax, 0x64
mov ecx, ebp
sub ecx, eax
push ecx
lea edx, [esp + 0x38]
push 0x640e60
push edx
call fcn.00510ed0
mov eax, dword [0x63dcd0]
mov ecx, dword [esp + 0x160]
add esp, 0x18
push eax
push 0
push ecx
lea ecx, [esp + 0x30]
call fcn.0050fcd0
mov eax, dword [0x6db93c]
mov dword [esp + 0x34], eax
mov dword [esp + 0x44], eax
mov dword [esp + 0x30], eax
mov dword [esp + 0x48], eax
mov byte [esp + 0x13c], 0xc
mov ebx, 1
mov esi, ebx
neg esi
push esi
push 1
lea ecx, [esp + 0x28]
call fcn.00510170
mov edx, dword [esp + 0x20]
push edx
lea ecx, [esp + 0x28]
mov byte [esp + 0x140], 0xd
call fcn.00510760
cmp eax, 0xffffffff
je 0x522f32
push esi
push 1
lea ecx, [esp + 0x28]
call fcn.0050fd80
mov eax, dword [esp + 0x20]
push eax
lea ecx, [esp + 0x28]
call fcn.00510760
cmp eax, 0xffffffff
jne 0x522f13
lea ecx, [ebx - 1]
cmp ecx, 3
ja case.default.0x522f3d
lea edx, [ebx - 1]
jmp dword [edx*4 + 0x523928]
lea ecx, [esp + 0x34]
jmp 0x522f64
lea ecx, [esp + 0x20]
push ecx
lea ecx, [esp + 0x48]
jmp 0x522f69
lea edx, [esp + 0x20]
push edx
lea ecx, [esp + 0x34]
jmp 0x522f69
lea ecx, [esp + 0x48]
lea eax, [esp + 0x20]
push eax
call fcn.0050f610
mov ecx, dword [esp + 0x20]
mov eax, dword [ecx - 0xc]
add ecx, 0xfffffff4
mov byte [esp + 0x13c], 0xc
cmp eax, 0xffffffff
je 0x522f91
add eax, 0xffffffff
mov dword [ecx], eax
jne 0x522f91
call fcn.0050ec00
inc ebx
cmp ebx, 5
jl 0x522ee8
mov ecx, dword [esp + 0x34]
mov edx, dword [esp + 0x2c]
push 1
push ecx
push edx
lea ecx, [esp + 0x30]
call fcn.00511040
mov ecx, dword [esp + 0x28]
test eax, eax
mov eax, dword [esp + 0x44]
push 1
push eax
push ecx
lea ecx, [esp + 0x30]
seta bl
call fcn.00511040
test eax, eax
ja 0x522fd2
test bl, bl
je 0x522fd4
mov bl, 1
lea eax, [esp + 0xd0]
call fcn.00520960
cmp word [esp + 0x6c], 7
movzx edx, word [esp + 0x5a]
movzx eax, word [esp + 0x58]
movzx ecx, word [esp + 0x56]
mov dword [esp + 0xd8], edx
mov dword [esp + 0xd4], eax
mov dword [esp + 0xd0], ecx
jne 0x523015
lea ecx, [esp + 0x54]
call fcn.00520a30
movzx edx, word [esp + 0x6c]
push 0
lea ecx, [esp + 0xc4]
mov dword [esp + 0xec], edx
call fcn.00520d80
mov ecx, dword [esp + 0x70]
lea eax, [esp + 0xc0]
push eax
call fcn.00522140
movzx edx, word [esp + 0x5c]
movzx ecx, ax
mov eax, dword [esp + 0x60]
mov dword [esp + 0xec], ecx
mov ecx, dword [esp + 0x40]
add ebp, 0xfffff894
cmp word [ecx], 0x63
mov dword [esp + 0xe0], eax
mov dword [esp + 0xdc], edx
mov dword [esp + 0xe4], ebp
mov dword [esp + 0xf0], 0
mov eax, 0x640d28
je 0x52308d
mov eax, 0x640e8c
push eax
lea ecx, [esp + 0xd4]
lea esi, [esp + 0x20]
call fcn.005211c0
mov eax, dword [0x6db93c]
mov dword [esp + 0x54], eax
mov dword [esp + 0x50], eax
mov esi, dword [esp + 0xb0]
push esi
lea edx, [esp + 0x58]
push str._04d
push edx
mov byte [esp + 0x14c], 0x10
call fcn.00510ed0
imul edi, edi, 0x64
sub esi, edi
push esi
lea eax, [esp + 0x60]
push str._02d
push eax
call fcn.00510ed0
mov ecx, dword [esp + 0x4c]
mov edx, dword [esp + 0x48]
add esp, 0x1c
push 1
push ecx
push edx
lea ecx, [esp + 0x28]
call fcn.00511040
mov eax, dword [esp + 0x48]
mov ecx, dword [esp + 0x28]
push 1
push eax
push ecx
lea ecx, [esp + 0x28]
call fcn.00511040
mov edx, dword [esp + 0x50]
mov eax, dword [esp + 0x30]
push 1
push edx
push eax
lea ecx, [esp + 0x28]
call fcn.00511040
mov ecx, dword [esp + 0x4c]
mov edx, dword [esp + 0x48]
push 1
push ecx
push edx
lea ecx, [esp + 0x28]
call fcn.00511040
test bl, bl
je 0x523164
mov eax, dword [esp + 0x28]
mov ecx, dword [esp + 0x44]
push 1
push eax
push ecx
lea ecx, [esp + 0x28]
call fcn.00511040
mov edx, dword [esp + 0x2c]
mov eax, dword [esp + 0x34]
push 1
push edx
push eax
lea ecx, [esp + 0x28]
call fcn.00511040
mov ecx, dword [esp + 0x1c]
mov eax, dword [ecx - 8]
push eax
push ecx
push eax
lea ecx, [esp + 0x20]
call fcn.005101f0
mov ecx, dword [esp + 0x4c]
mov eax, dword [ecx - 0xc]
add ecx, 0xfffffff4
mov byte [esp + 0x13c], 0xf
cmp eax, 0xffffffff
je 0x52319a
add eax, 0xffffffff
mov dword [ecx], eax
jne 0x52319a
call fcn.0050ec00
mov ecx, dword [esp + 0x50]
mov eax, dword [ecx - 0xc]
add ecx, 0xfffffff4
mov byte [esp + 0x13c], 0xe
cmp eax, 0xffffffff
je 0x5231bd
add eax, 0xffffffff
mov dword [ecx], eax
jne 0x5231bd
call fcn.0050ec00
mov ecx, dword [esp + 0x1c]
mov eax, dword [ecx - 0xc]
add ecx, 0xfffffff4
mov byte [esp + 0x13c], 0xc
cmp eax, 0xffffffff
je 0x5231e0
add eax, 0xffffffff
mov dword [ecx], eax
jne 0x5231e0
call fcn.0050ec00
mov ecx, dword [esp + 0x48]
mov eax, dword [ecx - 0xc]
add ecx, 0xfffffff4
mov byte [esp + 0x13c], 0xb
cmp eax, 0xffffffff
je 0x523203
add eax, 0xffffffff
mov dword [ecx], eax
jne 0x523203
call fcn.0050ec00
mov ecx, dword [esp + 0x30]
mov eax, dword [ecx - 0xc]
add ecx, 0xfffffff4
mov byte [esp + 0x13c], 0xa
cmp eax, 0xffffffff
je 0x523226
add eax, 0xffffffff
mov dword [ecx], eax
jne 0x523226
call fcn.0050ec00
mov ecx, dword [esp + 0x44]
mov eax, dword [ecx - 0xc]
add ecx, 0xfffffff4
mov byte [esp + 0x13c], 9
cmp eax, 0xffffffff
je 0x523249
add eax, 0xffffffff
mov dword [ecx], eax
jne 0x523249
call fcn.0050ec00
mov ecx, dword [esp + 0x34]
mov eax, dword [ecx - 0xc]
add ecx, 0xfffffff4
mov byte [esp + 0x13c], 8
cmp eax, 0xffffffff
je 0x52326c
add eax, 0xffffffff
mov dword [ecx], eax
jne 0x52326c
call fcn.0050ec00
mov ecx, dword [esp + 0x24]
mov eax, dword [ecx - 0xc]
add ecx, 0xfffffff4
mov byte [esp + 0x13c], 7
cmp eax, 0xffffffff
je 0x52328f
add eax, 0xffffffff
mov dword [ecx], eax
jne 0x52328f
call fcn.0050ec00
mov ecx, dword [esp + 0x28]
mov eax, dword [ecx - 0xc]
add ecx, 0xfffffff4
mov byte [esp + 0x13c], 6
cmp eax, 0xffffffff
je 0x5232b2
add eax, 0xffffffff
mov dword [ecx], eax
jne 0x5232b2
call fcn.0050ec00
mov ecx, dword [esp + 0x2c]
jmp 0x522cf0
movzx ecx, word [esp + 0x5c]
mov edx, dword [esp + 0x18]
push ecx
push edx
lea eax, [esp + 0x8c]
push eax
call fcn.00510e70
add esp, 0xc
mov eax, dword [eax]
mov ecx, dword [eax - 8]
push ecx
push eax
push ecx
lea ecx, [esp + 0x20]
mov byte [esp + 0x148], 0x11
call fcn.005101f0
mov ecx, dword [esp + 0x84]
jmp 0x522cf0
movzx ecx, word [esp + 0x5a]
mov edx, dword [esp + 0x18]
push ecx
push edx
lea eax, [esp + 0x80]
push eax
call fcn.00510e70
add esp, 0xc
mov eax, dword [eax]
mov ecx, dword [eax - 8]
push ecx
push eax
push ecx
lea ecx, [esp + 0x20]
mov byte [esp + 0x148], 0x12
call fcn.005101f0
mov ecx, dword [esp + 0x78]
jmp 0x522cf0
mov ax, word [esp + 0x5a]
cmp ax, 0xc
jbe 0x52334b
movzx eax, ax
sub eax, 0xc
jmp 0x523358
test ax, ax
movzx eax, ax
jne 0x523358
mov eax, 0xc
mov ecx, dword [esp + 0x18]
push eax
push ecx
lea edx, [esp + 0x94]
push edx
call fcn.00510e70
add esp, 0xc
mov eax, dword [eax]
mov ecx, dword [eax - 8]
push ecx
push eax
push ecx
lea ecx, [esp + 0x20]
mov byte [esp + 0x148], 0x13
call fcn.005101f0
mov ecx, dword [esp + 0x8c]
jmp 0x522cf0
mov esi, dword [esp + 0x18]
push edi
mov ecx, ebx
call fcn.00522140
movzx eax, ax
push eax
lea ecx, [esp + 0xb8]
push esi
push ecx
call fcn.00510e70
add esp, 0xc
mov eax, dword [eax]
mov ecx, dword [eax - 8]
push ecx
push eax
push ecx
lea ecx, [esp + 0x20]
mov byte [esp + 0x148], 0x14
call fcn.005101f0
mov ecx, dword [esp + 0xb4]
jmp 0x522cf0
push edi
lea edx, [esp + 0x11c]
push edx
mov ecx, ebx
call fcn.00521780
movzx eax, word [eax]
mov ecx, dword [esp + 0x18]
push eax
push ecx
lea edx, [esp + 0x9c]
push edx
call fcn.00510e70
add esp, 0xc
mov eax, dword [eax]
mov ecx, dword [eax - 8]
push ecx
push eax
push ecx
lea ecx, [esp + 0x20]
mov byte [esp + 0x148], 0x15
call fcn.005101f0
mov ecx, dword [esp + 0x94]
jmp 0x522cf0
mov eax, dword [esp + 0x60]
mov ecx, dword [esp + 0x18]
inc eax
push eax
push ecx
lea edx, [esp + 0xd0]
push edx
call fcn.00510e70
add esp, 0xc
mov eax, dword [eax]
mov ecx, dword [eax - 8]
push ecx
push eax
push ecx
lea ecx, [esp + 0x20]
mov byte [esp + 0x148], 0x16
call fcn.005101f0
mov ecx, dword [esp + 0xc8]
jmp 0x522cf0
movzx eax, word [esp + 0x58]
mov ecx, dword [esp + 0x18]
push eax
push ecx
lea edx, [esp + 0xa4]
push edx
call fcn.00510e70
add esp, 0xc
mov eax, dword [eax]
mov ecx, dword [eax - 8]
push ecx
push eax
push ecx
lea ecx, [esp + 0x20]
mov byte [esp + 0x148], 0x17
call fcn.005101f0
mov ecx, dword [esp + 0x9c]
jmp 0x522cf0
push 0x640da0
lea ecx, [esp + 0xf8]
lea esi, [esp + 0xc0]
call fcn.005211c0
add esp, 4
mov eax, dword [eax]
mov ecx, dword [eax - 8]
push ecx
push eax
push ecx
lea ecx, [esp + 0x20]
mov byte [esp + 0x148], 0x18
call fcn.005101f0
mov ecx, dword [esp + 0xbc]
jmp 0x522cf0
movzx eax, word [esp + 0x56]
mov ecx, dword [esp + 0x18]
push eax
push ecx
lea edx, [esp + 0xac]
push edx
call fcn.00510e70
add esp, 0xc
mov eax, dword [eax]
mov ecx, dword [eax - 8]
push ecx
push eax
push ecx
lea ecx, [esp + 0x20]
mov byte [esp + 0x148], 0x19
call fcn.005101f0
mov ecx, dword [esp + 0xa4]
jmp 0x522cf0
mov esi, dword [esp + 0x18]
push edi
push 2
mov ecx, ebx
call fcn.00522780
movzx eax, ax
push eax
lea ecx, [esp + 0xd0]
push esi
push ecx
call fcn.00510e70
add esp, 0xc
mov eax, dword [eax]
mov ecx, dword [eax - 8]
push ecx
push eax
push ecx
lea ecx, [esp + 0x20]
mov byte [esp + 0x148], 0x1a
call fcn.005101f0
mov ecx, dword [esp + 0xcc]
jmp 0x522cf0
mov esi, dword [esp + 0x18]
push edi
push 1
mov ecx, ebx
call fcn.00522780
movzx edx, ax
push edx
lea eax, [esp + 0x80]
push esi
push eax
call fcn.00510e70
add esp, 0xc
mov eax, dword [eax]
mov ecx, dword [eax - 8]
push ecx
push eax
push ecx
lea ecx, [esp + 0x20]
mov byte [esp + 0x148], 0x1b
call fcn.005101f0
mov ecx, dword [esp + 0x7c]
jmp 0x522cf0
cmp word [esp + 0x6c], 7
jne 0x5235c5
lea ecx, [esp + 0x54]
call fcn.00520a30
movzx eax, word [esp + 0x6c]
mov ecx, dword [esp + 0x18]
push eax
push ecx
lea edx, [esp + 0x88]
push edx
call fcn.00510e70
add esp, 0xc
mov eax, dword [eax]
mov ecx, dword [eax - 8]
push ecx
push eax
push ecx
lea ecx, [esp + 0x20]
mov byte [esp + 0x148], 0x1c
call fcn.005101f0
mov ecx, dword [esp + 0x80]
jmp 0x522cf0
push 0x640e84
lea ecx, [esp + 0xf8]
lea esi, [esp + 0x8c]
call fcn.005211c0
add esp, 4
mov eax, dword [eax]
mov ecx, dword [eax - 8]
push ecx
push eax
push ecx
lea ecx, [esp + 0x20]
mov byte [esp + 0x148], 0x1d
call fcn.005101f0
mov ecx, dword [esp + 0x88]
jmp 0x522cf0
mov eax, 0x51eb851f
imul ebp
mov ecx, dword [esp + 0x18]
sar edx, 5
mov eax, edx
shr eax, 0x1f
add eax, edx
imul eax, eax, 0x64
sub ebp, eax
push ebp
push ecx
lea edx, [esp + 0x98]
push edx
call fcn.00510e70
add esp, 0xc
mov eax, dword [eax]
mov ecx, dword [eax - 8]
push ecx
push eax
push ecx
lea ecx, [esp + 0x20]
mov byte [esp + 0x148], 0x1e
call fcn.005101f0
mov ecx, dword [esp + 0x90]
jmp 0x522cf0
mov eax, dword [esp + 0x18]
push ebp
push eax
lea ecx, [esp + 0xa0]
push ecx
call fcn.00510e70
add esp, 0xc
mov eax, dword [eax]
mov ecx, dword [eax - 8]
push ecx
push eax
push ecx
lea ecx, [esp + 0x20]
mov byte [esp + 0x148], 0x1f
call fcn.005101f0
mov ecx, dword [esp + 0x98]
jmp 0x522cf0
push 0x640e50
lea ecx, [esp + 0xf8]
lea esi, [esp + 0xa4]
call fcn.005211c0
add esp, 4
mov eax, dword [eax]
mov ecx, dword [eax - 8]
push ecx
push eax
push ecx
lea ecx, [esp + 0x20]
mov byte [esp + 0x148], 0x20
call fcn.005101f0
mov ecx, dword [esp + 0xa0]
jmp 0x522cf0
push 0x25
jmp 0x523719
movzx eax, word [esi]
push eax
push 1
lea ecx, [esp + 0x1c]
call fcn.0050fd80
mov esi, dword [esp + 0x40]
add esi, 2
cmp word [esi], 0
mov dword [esp + 0x40], esi
jne 0x522b80
mov eax, dword [0x6db93c]
mov edx, dword [esp + 0x14]
cmp dword [edx - 8], 0
mov esi, dword [esp + 0x144]
jne 0x523753
mov dword [esi], eax
jmp 0x523765
mov dword [esi], edx
mov eax, dword [edx - 0xc]
cmp eax, 0xffffffff
je 0x523765
inc eax
mov dword [edx - 0xc], eax
mov edx, dword [esp + 0x14]
mov ecx, dword [esp + 0x18]
mov eax, dword [ecx - 0xc]
add ecx, 0xfffffff4
mov dword [esp + 0xa8], 1
mov byte [esp + 0x13c], 2
cmp eax, 0xffffffff
je 0x523797
add eax, 0xffffffff
mov dword [ecx], eax
jne 0x523793
call fcn.0050ec00
mov edx, dword [esp + 0x14]
mov eax, dword [edx - 0xc]
lea ecx, [edx - 0xc]
mov byte [esp + 0x13c], 1
cmp eax, 0xffffffff
je 0x5237b6
add eax, 0xffffffff
mov dword [ecx], eax
jne 0x5237b6
call fcn.0050ec00
mov ecx, dword [esp + 0xb0]
mov eax, dword [ecx - 0xc]
add ecx, 0xfffffff4
mov byte [esp + 0x13c], 0
cmp eax, 0xffffffff
je 0x523804
add eax, 0xffffffff
mov dword [ecx], eax
jne 0x523804
call fcn.0050ec00
jmp 0x523804
mov eax, dword [0x6db93c]
test eax, eax
jne 0x5237ec
mov eax, 0x683698
mov edx, dword [0x63dcd0]
mov esi, dword [esp + 0x144]
push edx
push 0
push eax
mov ecx, esi
call fcn.0050fcd0
mov eax, esi
mov ecx, dword [esp + 0x134]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x12c
ret 0xc