Function at 0x632eb0
Capabilities:
Encode data using xor
Encrypt data using rc4 ksa
Resolve function by parsing pe exports

Disassembly:
push ebp
mov ebp, esp
push ecx
mov ecx, 0x91
push 0
push 0
dec ecx
jne 0x632eb9
push ecx
xchg dword [ebp - 4], ecx
push ebx
push esi
push edi
mov byte [ebp - 9], cl
mov dword [ebp - 8], edx
mov dword [ebp - 4], eax
lea esi, [ebp - 4]
xor eax, eax
push ebp
push 0x633cb6
push dword fs:[eax]
mov dword fs:[eax], esp
mov eax, dword [esi]
call fcn.0062ed54
mov eax, dword [esi]
mov ebx, dword [eax + 0x60]
cmp byte [ebx + 0x10], 0
jne 0x632f6d
mov eax, ebx
xor ecx, ecx
mov dl, byte [ebp - 9]
call fcn.004f5648
test eax, eax
ja 0x632f19
mov ecx, 0x633cd0
mov dl, 1
mov eax, dword [0x408468]
call fcn.0040e550
call fcn.00403ef0
mov eax, dword [esi]
add eax, 0xe8
push eax
mov eax, dword [esi]
mov ebx, dword [eax + 0x60]
movzx eax, word [ebx + 0x12]
push eax
mov eax, 0x400
pop edx
mov ecx, edx
xor edx, edx
div ecx
mov ecx, eax
mov eax, ebx
xor edx, edx
call fcn.004f589c
test eax, eax
jne 0x632f5c
mov ecx, 0x633d04
mov dl, 1
mov eax, dword [0x408468]
call fcn.0040e550
call fcn.00403ef0
mov eax, dword [esi]
add eax, 0xe8
call fcn.004f67e0
mov edx, dword [esi]
mov byte [edx + 0x78], al
mov eax, dword [esi]
cmp byte [eax + 0x78], 0
je 0x632faf
cmp word [ebp + 0xa], 0
je 0x632f98
mov byte [ebp - 0x11], 0
lea ecx, [ebp - 0x11]
mov edx, dword [esi]
mov eax, dword [ebp + 0xc]
call dword [ebp + 8]
cmp byte [ebp - 0x11], 0
je 0x632f98
xor ebx, ebx
jmp 0x633c90
mov eax, dword [esi]
push esi
lea esi, [eax + 0xe8]
lea edi, [ebp - 0x442]
mov ecx, pe_nt_image_headers32
rep movsd dword es:[edi], dword [esi]
pop esi
cmp byte [ebp + 0x14], 0
je 0x632fc1
mov eax, dword [esi]
cmp byte [eax + 0x78], 0
je 0x632fc1
xor eax, eax
jmp 0x632fc3
mov al, 1
mov byte [ebp - 0x12], al
cmp byte [ebp - 0x12], 0
je 0x632fe4
mov eax, dword [esi]
add eax, 0xe8
mov ecx, 0xff
mov edx, 0x400
call fcn.00402f1c
jmp 0x633010
mov eax, dword [esi]
add eax, 0x1e8
mov ecx, 0xff
mov edx, 0x80
call fcn.00402f1c
mov eax, dword [esi]
add eax, 0x268
mov ecx, 0xff
mov edx, 0x80
call fcn.00402f1c
mov eax, dword [esi]
lea edx, [eax + 0xe8]
mov ecx, 7
mov eax, 0x633d28
call fcn.004f20a8
mov eax, dword [ebp - 8]
movzx eax, byte [eax + 0x31]
mov edx, dword [esi]
mov word [edx + 0x1cc], ax
lea eax, [ebp - 0x448]
mov edx, dword [ebp - 8]
add edx, 0x54
call fcn.004047e8
mov eax, dword [ebp - 0x448]
mov edx, dword [esi]
add edx, 0xf0
mov ecx, 0x1f
call fcn.004f20a8
lea eax, [ebp - 0x44c]
mov edx, dword [ebp - 8]
add edx, 0x54
call fcn.004047e8
mov eax, dword [ebp - 0x44c]
mov edx, dword [esi]
add edx, 0x110
mov ecx, 0x1f
call fcn.004f20a8
lea eax, [ebp - 0x450]
mov edx, dword [ebp - 8]
add edx, 0x75
call fcn.004047e8
mov eax, dword [ebp - 0x450]
mov edx, dword [esi]
add edx, 0x18c
mov ecx, 0xf
call fcn.004f20a8
lea eax, [ebp - 0x454]
mov edx, dword [ebp - 8]
add edx, 0x152
call fcn.004047e8
mov eax, dword [ebp - 0x454]
mov edx, dword [esi]
add edx, 0x19c
mov ecx, 0xf
call fcn.004f20a8
lea eax, [ebp - 0x458]
mov edx, dword [ebp - 8]
add edx, 0xb9
call fcn.004047e8
mov eax, dword [ebp - 0x458]
mov edx, dword [esi]
add edx, 0x1ac
mov ecx, 0x1f
call fcn.004f20a8
lea eax, [ebp - 0x45c]
mov edx, dword [ebp - 8]
add edx, 0xec
call fcn.004047e8
mov eax, dword [ebp - 0x45c]
mov edx, dword [esi]
add edx, 0x1d3
mov ecx, 0x13
call fcn.004f20a8
mov eax, dword [esi]
and byte [eax + 0x45c], 0xfe
cmp byte [ebp - 0x12], 0
je 0x633153
mov eax, dword [ebp - 8]
mov al, byte [eax + 0x32]
mov edx, dword [esi]
mov byte [edx + 0x1ce], al
lea eax, [ebp - 0x460]
mov dl, byte [ebp - 9]
call fcn.0040475c
lea eax, [ebp - 0x460]
mov edx, 0x633d3c
call fcn.0040484c
mov eax, dword [ebp - 0x460]
call fcn.00409f98
test al, al
je 0x6331e6
lea eax, [ebp - 0x464]
mov dl, byte [ebp - 9]
call fcn.0040475c
lea eax, [ebp - 0x464]
mov edx, 0x633d58
call fcn.0040484c
mov eax, dword [ebp - 0x464]
call fcn.00409f98
test al, al
je 0x6331e6
lea eax, [ebp - 0x468]
mov dl, byte [ebp - 9]
call fcn.0040475c
lea eax, [ebp - 0x468]
mov edx, 0x633d58
call fcn.0040484c
mov eax, dword [ebp - 0x468]
call fcn.0053add8
cmp eax, 0x5020700
jae 0x6331e6
mov eax, dword [esi]
mov byte [eax + 0xef], 0x33
mov eax, dword [ebp - 8]
mov eax, dword [eax + 4]
sub eax, 2
jae 0x6333b9
mov eax, dword [esi]
mov byte [eax + 0x164], 1
cmp byte [ebp - 0x12], 0
je 0x63322a
mov eax, dword [ebp - 8]
cmp dword [eax + 4], 0
jne 0x63322a
mov eax, dword [esi]
mov byte [eax + 0x165], 1
lea edx, [ebp - 0x32]
mov ecx, 0x1f
mov eax, 0x633d70
call fcn.004f20a8
jmp 0x633257
mov eax, dword [esi]
mov byte [eax + 0x165], 0
lea eax, [ebp - 0x46c]
mov edx, dword [ebp - 8]
add edx, 8
call fcn.004047e8
mov eax, dword [ebp - 0x46c]
lea edx, [ebp - 0x32]
mov ecx, 0x1f
call fcn.004f20a8
mov eax, dword [esi]
cmp byte [eax + 0x1ce], 1
jne 0x63326f
mov eax, dword [esi]
mov word [eax + 0x1cf], 0xffff
jmp 0x6332a3
call fcn.00402c04
mov eax, 0x10000
call fcn.00402f3c
mov ebx, eax
mov eax, dword [esi]
mov word [eax + 0x1cf], bx
cmp bx, 0xffff
jne 0x6332a3
mov eax, 0x10000
call fcn.00402f3c
mov edx, dword [esi]
mov word [edx + 0x1cf], ax
mov eax, dword [esi]
cmp byte [eax + 0x1ce], 4
jne 0x63331e
lea eax, [ebp - 0x42]
push eax
lea eax, [ebp - 0x470]
mov edx, dword [esi]
add edx, 0xe8
mov ecx, 8
call fcn.004047f4
mov eax, dword [ebp - 0x470]
call fcn.0062e1e4
cmp eax, 0xd
setle al
push eax
lea eax, [ebp - 0x474]
lea edx, [ebp - 0x32]
mov ecx, 0x20
call fcn.004047f4
mov eax, dword [ebp - 0x474]
mov edx, dword [esi]
mov dx, word [edx + 0x1cf]
pop ecx
call fcn.0062e070
mov edi, 0xc
lea ebx, [ebp - 0x3e]
mov eax, pe_nt_image_headers32
call fcn.00402f3c
mov byte [ebx], al
inc ebx
dec edi
jne 0x63330c
jmp 0x633374
lea eax, [ebp - 0x42]
push eax
lea eax, [ebp - 0x478]
mov edx, dword [esi]
add edx, 0xe8
mov ecx, 8
call fcn.004047f4
mov eax, dword [ebp - 0x478]
call fcn.0062e1e4
cmp eax, 0xd
setle al
push eax
lea eax, [ebp - 0x47c]
lea edx, [ebp - 0x32]
mov ecx, 0x20
call fcn.004047f4
mov eax, dword [ebp - 0x47c]
mov edx, dword [esi]
mov dx, word [edx + 0x1cf]
pop ecx
call fcn.0062b374
mov eax, dword [esi]
lea edx, [eax + 0x166]
lea eax, [ebp - 0x42]
mov ecx, 0x10
call fcn.00402a14
mov eax, dword [ebp - 8]
mov al, byte [eax + 0x2c]
mov edx, dword [esi]
mov byte [edx + 0x18a], al
mov eax, dword [ebp - 8]
mov al, byte [eax + 0x30]
mov edx, dword [esi]
mov byte [edx + 0x18b], al
test al, 2
je 0x6333c2
mov eax, dword [ebp - 8]
mov al, byte [eax + 0x2c]
mov edx, dword [esi]
mov byte [edx + 0x1e7], al
jmp 0x6333c2
mov eax, dword [esi]
mov byte [eax + 0x164], 0
mov eax, dword [esi]
mov word [eax + 0x176], 0
mov eax, dword [ebp - 8]
mov ax, word [eax + 0x172]
mov edx, dword [esi]
mov word [edx + 0x188], ax
mov eax, dword [ebp - 8]
mov al, byte [eax + 0x172]
sub al, 1
jb 0x6336e1
je 0x6333f8
jmp 0x6336cb
mov eax, dword [ebp - 8]
mov eax, dword [eax + 0x174]
call fcn.00630b14
test al, al
je 0x633416
mov edi, dword [ebp - 8]
mov di, word [edi + 0x174]
jmp 0x63341a
mov di, 0x80
mov eax, dword [esi]
mov al, byte [eax + 0x1ce]
sub al, 1
je 0x633432
sub al, 3
je 0x633432
sub al, 0xfb
jne 0x6334ed
mov eax, dword [esi]
cmp word [eax + 0x562], 0
je 0x6334d5
mov eax, dword [esi]
add eax, 0x81
xor ecx, ecx
mov edx, 0x3b
call fcn.00402f1c
mov eax, dword [esi]
cmp byte [eax + 0x1ce], 4
jne 0x633469
mov eax, dword [esi]
mov word [eax + 0x9a], di
mov eax, dword [esi]
mov ax, word [eax + 0x188]
push eax
mov eax, dword [esi]
add eax, 0x81
push eax
mov eax, dword [esi]
add eax, 0x7a
push eax
mov eax, dword [esi]
add eax, 0x7b
push eax
lea edx, [ebp - 0x480]
mov eax, dword [esi]
call fcn.0062b8fc
mov ecx, dword [ebp - 0x480]
mov ebx, dword [esi]
mov edx, dword [esi]
mov eax, dword [ebx + 0x564]
call dword [ebx + 0x560]
mov eax, dword [esi]
mov al, byte [eax + 0x81]
mov edx, dword [ebp - 8]
cmp al, byte [edx + 0x172]
je 0x633519
mov ecx, 0x633d80
mov dl, 1
mov eax, dword [0x408468]
call fcn.0040e550
call fcn.00403ef0
jmp 0x633519
mov ecx, 0x633d80
mov dl, 1
mov eax, dword [0x408468]
call fcn.0040e550
call fcn.00403ef0
jmp 0x633519
mov eax, dword [esi]
add eax, 0x81
xor ecx, ecx
mov edx, 0x3b
call fcn.00402f1c
mov eax, dword [esi]
lea ecx, [eax + 0x81]
movzx edx, di
mov eax, dword [esi]
mov ax, word [eax + 0x188]
call fcn.00630b30
call fcn.00402c04
xor edi, edi
mov eax, pe_nt_image_headers32
call fcn.00402f3c
mov edx, dword [esi]
mov byte [edx + edi + 0x2e8], al
inc edi
cmp edi, 0x80
jne 0x633520
call fcn.00402c04
xor edi, edi
mov eax, pe_nt_image_headers32
call fcn.00402f3c
mov edx, dword [esi]
mov byte [edx + edi + 0x3e8], al
inc edi
cmp edi, 0x20
jne 0x633543
mov eax, dword [esi]
cmp byte [eax + 0x1ce], 4
jne 0x6335ab
lea eax, [ebp - 0x32]
call fcn.0040a538
mov edx, eax
lea ecx, [ebp - 0x42]
lea eax, [ebp - 0x32]
call fcn.0062f614
xor edi, edi
mov eax, dword [esi]
mov al, byte [eax + edi + 0x3e8]
mov edx, edi
and edx, 0x8000000f
jns 0x633596
dec edx
or edx, 0xfffffff0
inc edx
xor al, byte [ebp + edx - 0x42]
mov edx, dword [esi]
mov byte [edx + edi + 0x9c], al
inc edi
cmp edi, 0x20
jne 0x63357e
jmp 0x6335ce
xor edi, edi
mov eax, dword [esi]
mov al, byte [eax + edi + 0x3e8]
mov edx, dword [esi]
xor al, byte [edx + edi + 0x2e8]
mov edx, dword [esi]
mov byte [edx + edi + 0x9c], al
inc edi
cmp edi, 0x20
jne 0x6335ad
mov eax, dword [esi]
add eax, 0x9c
push eax
push 0x1f
mov eax, dword [esi]
movzx eax, word [eax + 0x9a]
push eax
push 0xc0
mov eax, dword [esi]
lea edx, [eax + 0x82]
mov eax, dword [esi]
mov eax, dword [eax + 0xbc]
mov ecx, 0x17
call fcn.004ff700
mov eax, dword [esi]
mov al, byte [eax + 0x1ce]
mov edx, eax
sub dl, 1
je 0x6336b3
sub dl, 3
je 0x6336b3
sub dl, 0xfb
je 0x6336b3
mov edi, 0x20
lea eax, [ebp - 0x32]
mov dl, byte [eax]
test dl, dl
je 0x63363d
xor dl, 0x55
mov byte [eax], dl
inc eax
dec edi
jne 0x63362e
lea eax, [ebp - 0x484]
lea edx, [ebp - 0x32]
mov ecx, 0x20
call fcn.004047f4
mov eax, dword [ebp - 0x484]
lea edx, [ebp - 0x42]
call fcn.004f3a2c
xor edi, edi
lea eax, [edi + 0x20]
mov edx, dword [esi]
mov al, byte [edx + eax + 0x2e8]
mov edx, dword [esi]
xor al, byte [edx + edi + 0x82]
mov edx, dword [esi]
mov byte [edx + edi + 0x408], al
mov eax, edi
and eax, 0x8000000f
jns 0x63368c
dec eax
or eax, 0xfffffff0
inc eax
mov al, byte [ebp + eax - 0x42]
mov edx, dword [esi]
xor byte [edx + edi + 0x408], al
inc edi
cmp edi, 0x18
jne 0x633660
mov eax, dword [esi]
mov ax, word [eax + 0x9a]
mov edx, dword [esi]
mov word [edx + 0x420], ax
jmp 0x6336e1
cmp al, 4
jne 0x6336e1
mov eax, dword [esi]
mov ax, word [eax + 0x9a]
mov edx, dword [esi]
mov word [edx + 0x420], ax
jmp 0x6336e1
mov ecx, 0x633db8
mov dl, 1
mov eax, dword [0x408468]
call fcn.0040e550
call fcn.00403ef0
cmp byte [ebp - 0x12], 0
je 0x6338e3
mov eax, dword [esi]
mov eax, dword [eax + 0x60]
mov ax, word [eax + 0x12]
mov edx, dword [esi]
mov word [edx + 0x130], ax
mov eax, dword [esi]
mov eax, dword [eax + 0x60]
mov ax, word [eax + 0x14]
mov edx, dword [esi]
mov word [edx + 0x132], ax
mov eax, dword [esi]
mov word [eax + 0x134], 0x400
mov eax, dword [esi]
movzx eax, word [eax + 0x130]
push eax
mov eax, 0x400
pop edx
mov ecx, edx
xor edx, edx
div ecx
mov edx, dword [esi]
mov word [edx + 0x136], ax
mov eax, dword [esi]
movzx eax, word [eax + 0x130]
xor edx, edx
push edx
push eax
mov eax, dword [esi]
mov eax, dword [eax + 0x60]
mov edx, dword [eax + 0x1c]
mov eax, dword [eax + 0x18]
call fcn.0040572c
mov ebx, eax
mov eax, dword [esi]
mov dword [eax + 0x138], ebx
mov eax, ebx
mov edx, dword [esi]
movzx edx, word [edx + 0x136]
mov ecx, edx
xor edx, edx
div ecx
mov edx, dword [esi]
mov dword [edx + 0x13c], eax
mov edx, dword [esi]
mov eax, 0x4000
mov dword [edx + 0x14c], eax
mov edx, dword [esi]
mov edx, dword [edx + 0x13c]
sub edx, eax
mov eax, dword [esi]
mov dword [eax + 0x148], edx
mov eax, dword [esi]
mov al, byte [eax + 0x1ce]
dec eax
sub al, 2
jb 0x6337a9
sub al, 1
jne 0x6337c8
mov edx, dword [esi]
mov eax, 0x8000
mov dword [edx + 0x154], eax
mov edx, dword [esi]
mov edx, dword [edx + 0x148]
sub edx, eax
mov eax, dword [esi]
mov dword [eax + 0x150], edx
mov eax, dword [esi]
mov ebx, dword [eax + 0x13c]
dec ebx
mov eax, dword [esi]
sub ebx, dword [eax + 0x14c]
mov eax, dword [esi]
sub ebx, dword [eax + 0x154]
push 0
push 0x400
mov eax, dword [ebp - 8]
mov edx, dword [eax + 0x204]
mov eax, dword [eax + 0x200]
call fcn.0040572c
cmp ebx, eax
jae 0x633802
mov eax, ebx
cmp eax, ebx
jae 0x63381e
mov edx, dword [esi]
mov dword [edx + 0x140], 1
sub ebx, eax
mov edx, dword [esi]
mov dword [edx + 0x144], ebx
jmp 0x633832
mov edx, dword [esi]
xor ecx, ecx
mov dword [edx + 0x140], ecx
mov edx, dword [esi]
xor ecx, ecx
mov dword [edx + 0x144], ecx
test eax, eax
jbe 0x63386a
mov edx, dword [esi]
mov edx, dword [edx + 0x140]
test edx, edx
jne 0x633850
mov edx, dword [esi]
mov dword [edx + 0x158], 1
jmp 0x633860
mov ecx, dword [esi]
add edx, dword [ecx + 0x144]
mov ecx, dword [esi]
mov dword [ecx + 0x158], edx
mov edx, dword [esi]
mov dword [edx + 0x15c], eax
jmp 0x633882
mov eax, dword [esi]
mov dword [eax + 0x158], 0xffffffff
mov eax, dword [esi]
mov dword [eax + 0x15c], 0xffffffff
mov eax, dword [ebp - 8]
mov al, byte [eax + 0x208]
mov edx, dword [esi]
mov byte [edx + 0x1d1], al
mov eax, dword [ebp - 8]
mov al, byte [eax + 0x209]
mov edx, dword [esi]
mov byte [edx + 0x1d2], al
lea eax, [ebp - 0x488]
mov edx, dword [ebp - 8]
add edx, 0x20a
call fcn.004047e8
mov eax, dword [ebp - 0x488]
mov edx, dword [esi]
add edx, 0x43a
mov ecx, 0x1f
call fcn.004f20a8
mov eax, dword [ebp - 8]
mov ax, word [eax + 0x22c]
mov edx, dword [esi]
mov word [edx + 0x45a], ax
mov eax, dword [esi]
cmp dword [eax + 0x140], 0
je 0x63391a
mov eax, dword [esi]
mov dword [eax + 0x1e8], 1
mov eax, dword [esi]
mov dword [eax + 0x1ec], 0x80000
push ebp
mov eax, dword [esi]
mov eax, dword [eax + 0x1e8]
mov edx, 0x80000
call fcn.00632c5c
pop ecx
mov eax, dword [esi]
mov eax, dword [eax + 0x158]
cmp eax, 0xffffffff
je 0x633951
mov edx, dword [esi]
mov dword [edx + 0x268], eax
mov eax, dword [esi]
mov dword [eax + 0x26c], 0x80000
push ebp
mov eax, dword [esi]
mov eax, dword [eax + 0x268]
mov edx, 0x80000
call fcn.00632c5c
pop ecx
jmp 0x633971
mov eax, dword [esi]
cmp byte [eax + 0x78], 0
je 0x633971
mov eax, dword [esi]
lea edx, [eax + 0x268]
lea eax, [ebp - 0x2c2]
mov ecx, 0x80
call fcn.00402a14
cmp byte [ebp + 0x14], 0
jne 0x633a90
cmp dword [ebp + 0x10], 0
je 0x633a90
mov eax, dword [esi]
add eax, 0x368
xor ecx, ecx
mov edx, 0x80
call fcn.00402f1c
mov eax, dword [esi]
lea edx, [eax + 0x368]
mov ecx, 7
mov eax, 0x633df8
call fcn.004f20a8
mov eax, dword [ebp + 0x10]
mov al, byte [eax + 4]
mov edx, dword [esi]
mov byte [edx + 0x370], al
mov eax, dword [ebp + 0x10]
mov al, byte [eax + 5]
mov edx, dword [esi]
mov byte [edx + 0x371], al
lea eax, [ebp - 0x48c]
mov edx, dword [ebp + 0x10]
add edx, 6
call fcn.004047e8
mov eax, dword [ebp - 0x48c]
mov edx, dword [esi]
add edx, 0x372
mov ecx, 0x31
call fcn.004f20a8
mov eax, dword [ebp + 0x10]
mov ax, word [eax + 0x3a]
mov edx, dword [esi]
mov word [edx + 0x3a4], ax
mov eax, dword [ebp + 0x10]
mov al, byte [eax + 0x3c]
mov edx, dword [esi]
mov byte [edx + 0x3a6], al
mov eax, dword [ebp + 0x10]
mov al, byte [eax + 0x3d]
mov edx, dword [esi]
mov byte [edx + 0x3a7], al
lea eax, [ebp - 0x490]
mov edx, dword [ebp + 0x10]
add edx, 0x3e
call fcn.004047e8
mov eax, dword [ebp - 0x490]
mov edx, dword [esi]
add edx, 0x3a8
mov ecx, 0x31
call fcn.004f20a8
mov eax, dword [ebp + 0x10]
mov ax, word [eax + 0x72]
mov edx, dword [esi]
mov word [edx + 0x3da], ax
mov eax, dword [ebp + 0x10]
mov al, byte [eax + 0x74]
mov edx, dword [esi]
mov byte [edx + 0x3dc], al
mov eax, dword [ebp + 0x10]
mov al, byte [eax + 0x75]
mov edx, dword [esi]
mov byte [edx + 0x3dd], al
mov eax, dword [esi]
lea edx, [eax + 0x2e8]
mov eax, dword [esi]
add eax, 0x368
mov ecx, 0x80
call fcn.0062b650
jmp 0x633afe
cmp byte [ebp + 0x14], 0
je 0x633afe
mov eax, dword [esi]
cmp byte [eax + 0x78], 0
je 0x633afe
lea edx, [ebp - 0x242]
lea eax, [ebp - 0x1c2]
mov ecx, 0x80
call fcn.0062b650
mov edx, 0x633e04
lea eax, [ebp - 0x1c2]
mov ecx, 8
call fcn.0040a6e4
test eax, eax
jne 0x633afe
mov eax, dword [esi]
lea edx, [eax + 0x368]
lea eax, [ebp - 0x1c2]
mov ecx, 0x80
call fcn.00402a14
mov eax, dword [esi]
lea edx, [eax + 0x2e8]
mov eax, dword [esi]
add eax, 0x368
mov ecx, 0x80
call fcn.0062b650
mov eax, dword [ebp - 8]
cmp word [eax + 0x178], 1
jne 0x633b22
mov eax, dword [esi]
mov al, byte [eax + 0x1ce]
sub al, 1
je 0x633b1b
sub al, 0xfe
jne 0x633b22
push ebp
call fcn.00632dc0
pop ecx
mov eax, dword [esi]
mov edx, dword [eax + 0x14c]
mov eax, dword [esi]
movzx eax, word [eax + 0x134]
imul edx, eax
mov eax, dword [esi]
call fcn.0063201c
mov eax, dword [esi]
call fcn.0062ee1c
test al, al
je 0x633b57
lea eax, [ebp - 0x10]
mov edx, 0x633e18
call fcn.0040460c
jmp 0x633b64
lea eax, [ebp - 0x10]
mov edx, 0x633e34
call fcn.0040460c
mov eax, dword [esi]
cmp dword [eax + 0x150], 0xffffffff
je 0x633b93
mov al, byte [ebp + 0x14]
xor al, 1
push eax
mov eax, dword [esi]
mov ecx, dword [eax + 0x154]
mov eax, dword [esi]
movzx eax, word [eax + 0x134]
imul ecx, eax
mov edx, dword [ebp - 8]
mov eax, dword [esi]
call fcn.00632978
mov eax, dword [esi]
add eax, 0xe8
push eax
mov eax, dword [esi]
mov ebx, dword [eax + 0x60]
movzx eax, word [ebx + 0x12]
push eax
mov eax, 0x400
pop edx
mov ecx, edx
xor edx, edx
div ecx
mov ecx, eax
mov eax, ebx
xor edx, edx
call fcn.004f5950
test eax, eax
jne 0x633bd6
mov ecx, 0x633e50
mov dl, 1
mov eax, dword [0x408468]
call fcn.0040e550
call fcn.00403ef0
mov eax, dword [esi]
cmp word [eax + 0x532], 0
je 0x633bfb
lea eax, [ebp - 0x11]
push eax
mov ebx, dword [esi]
mov ecx, 0x50
mov edx, dword [esi]
mov eax, dword [ebx + 0x534]
call dword [ebx + 0x530]
lea eax, [ebp - 0x442]
push eax
mov eax, dword [esi]
mov ebx, dword [eax + 0x60]
movzx eax, word [ebx + 0x12]
push eax
mov eax, 0x400
pop edx
mov ecx, edx
xor edx, edx
div ecx
mov ecx, eax
mov eax, ebx
xor edx, edx
call fcn.004f589c
test eax, eax
je 0x633c42
lea edx, [ebp - 0x442]
mov eax, dword [esi]
add eax, 0xe8
mov ecx, 0x400
call fcn.004093a4
test al, al
jne 0x633c58
mov ecx, 0x633e74
mov dl, 1
mov eax, dword [0x408468]
call fcn.0040e550
call fcn.00403ef0
mov eax, dword [esi]
cmp word [eax + 0x532], 0
je 0x633c7d
lea eax, [ebp - 0x11]
push eax
mov ebx, dword [esi]
mov ecx, 0x64
mov edx, dword [esi]
mov eax, dword [ebx + 0x534]
call dword [ebx + 0x530]
mov bl, 1
mov eax, dword [esi]
mov eax, dword [eax + 0x60]
call fcn.004f5878
mov eax, dword [esi]
call fcn.006306e0
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x633cbd
lea eax, [ebp - 0x490]
mov edx, 0x13
call fcn.00404598
lea eax, [ebp - 0x10]
call fcn.00404574
ret