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

Disassembly:
sub esp, 0x2ac
mov eax, dword [0x641f1d84]
xor eax, esp
mov dword [esp + 0x2a8], eax
mov edx, dword [esp + 0x2c0]
push ebx
push ebp
mov ebp, dword [esp + 0x2bc]
push esi
mov esi, ecx
xor bh, bh
mov eax, dword [esi + 0x48]
mov dword [esp + 0x50], edx
mov edx, dword [esp + 0x2d0]
lea ecx, [eax + 0x2f8]
mov dword [esp + 0x48], ecx
mov ecx, dword [eax + 0x14]
push edi
mov dword [esp + 0x28], ebp
mov dword [esp + 0x60], edx
mov byte [esp + 0x2f], bh
mov byte [esp + 0x2d], bh
mov byte [esp + 0x17], 1
mov byte [esp + 0x1f], bh
mov dword [esp + 0x20], ecx
test edx, edx
je 0x641834cc
mov dword [edx], 0
mov edi, dword [esp + 0x2c8]
test edi, edi
jne 0x641834f2
push 0x11e3
push 0x641dfcc8
push 8
call fcn.641d6150
mov eax, 0xa0000113
jmp 0x641843d6
cmp edi, 0x100
jbe 0x64183515
push 0x11e5
push 0x641dfcc8
push 9
call fcn.641d6150
mov eax, 0xce
jmp 0x641843d6
mov bl, byte [esp + 0x2c0]
cmp bl, 2
jne 0x64183599
mov ecx, dword [esi + 4]
lea ebp, [edi + edi]
mov eax, dword [ecx]
push ebp
push dword [esp + 0x2c]
lea edx, [esp + 0xa4]
push edx
call dword [eax + 4]
cmp ebp, 0x21c
jae 0x641843f1
xor eax, eax
mov word [esp + ebp + 0x9c], ax
mov ebp, dword [esp + 0x28]
mov eax, edi
mov dword [esp + 0x24], eax
xor ecx, ecx
mov word [esp + 0x29c], cx
mov ecx, dword [esp + 0x4c]
push ecx
push eax
lea eax, [esp + 0xa4]
push eax
push 2
mov ecx, esi
call fcn.64184de0
test eax, eax
jne 0x641835d6
push 0x11fc
push 0x641dfcc8
push 5
call fcn.641d6150
mov eax, 0xa000010b
jmp 0x641843d6
mov eax, dword [ecx]
lea edx, [esp + 0x24]
push edx
push 0x10e
lea edx, [esp + 0xa4]
push edx
push edi
push ebp
push 1
call dword [eax]
mov eax, dword [esp + 0x24]
test eax, eax
jne 0x641835c5
push 0x11f3
jmp 0x641834dc
cmp eax, 0x100
jbe 0x64183559
push 0x11f5
jmp 0x641834ff
mov ecx, dword [esp + 0x24]
xor eax, eax
test ecx, ecx
je 0x641835f4
mov edx, 0x80
cmp word [esp + eax*2 + 0x9c], dx
jae 0x6418362b
inc eax
cmp eax, ecx
jb 0x641835e5
mov al, byte [esp + 0x17]
cmp bl, 2
jne 0x64183740
test al, al
je 0x64183633
xor ecx, ecx
test edi, edi
je 0x64183623
jmp 0x64183610
mov al, byte [esp + ecx*2 + 0x9c]
mov byte [esp + ecx + 0x9c], al
inc ecx
cmp ecx, edi
jb 0x64183610
mov eax, edi
mov dword [esp + 0x38], eax
jmp 0x64183658
xor al, al
mov byte [esp + 0x17], al
jmp 0x641835f8
mov ecx, dword [esp + 0x20]
push 1
mov eax, dword [ecx]
lea edx, [esp + 0x3c]
push edx
push 0x21c
lea edx, [esp + 0xa8]
push edx
push edi
push ebp
push 2
call dword [eax + 0x3c]
mov eax, dword [esp + 0x38]
xor ecx, ecx
mov word [esp + 0x2b6], cx
lea ecx, [esp + 0x3c]
push ecx
push 0
push 0xd
lea ecx, [esp + 0x70]
push ecx
push eax
lea eax, [esp + 0xb0]
push eax
push 1
push dword [esp + 0x3c]
call fcn.64181ec0
mov ebp, eax
test ebp, ebp
je 0x641836a1
push 0x1229
push 0x641dfcc8
push ebp
call fcn.641d6150
mov eax, ebp
jmp 0x641843d6
mov ecx, dword [esi + 4]
add edi, edi
mov eax, dword [ecx]
push edi
push dword [esp + 0x2c]
lea edx, [esp + 0xa4]
push edx
call dword [eax + 4]
cmp edi, 0x21c
jae 0x641843f1
xor eax, eax
mov word [esp + edi + 0x9c], ax
mov eax, dword [esp + 0x24]
mov ecx, dword [esi + 4]
push 0x1a
mov edx, dword [ecx]
push 0xff
lea eax, [esp + eax*2 + 0xa6]
push eax
call dword [edx]
mov cl, byte [esp + 0x17]
xor edx, edx
mov byte [esp + 0x70], 0
test cl, cl
je 0x641838a1
mov ecx, dword [esp + 0x3c]
or edi, 0xffffffff
mov bl, 1
test ecx, ecx
je 0x641837df
mov ebp, 1
lea eax, [esp + 0x64]
sub ebp, eax
mov cl, byte [esp + edx + 0x64]
cmp cl, 0x2e
jne 0x64183782
cmp edi, 0xffffffff
jne 0x641837a8
lea eax, [edx + ebp]
lea edi, [esp + 0x64]
add edi, eax
test edx, edx
je 0x6418377c
test bl, bl
je 0x6418377c
mov bh, 1
mov bl, bh
jmp 0x641837a8
lea eax, [esp + 0x3c]
push eax
push 0
push 0xd
lea eax, [esp + 0x70]
push eax
push edi
push ebp
push 1
push dword [esp + 0x3c]
call fcn.64181ec0
mov edi, eax
test edi, edi
je 0x641836ce
push 0x1235
push 0x641dfcc8
push edi
call fcn.641d6150
mov eax, edi
jmp 0x641843d6
xor bh, bh
mov bl, 1
jmp 0x641837a8
mov al, cl
sub al, 0x61
cmp al, 0x19
ja 0x64183793
sub cl, 0x20
mov byte [esp + edx + 0x64], cl
jmp 0x641837a8
cmp cl, 0x30
jb 0x6418379d
cmp cl, 0x39
jbe 0x641837a8
sub cl, 0x41
mov al, 0x19
cmp al, cl
sbb al, al
and bl, al
mov ecx, dword [esp + 0x3c]
inc edx
cmp edx, ecx
jb 0x64183717
cmp edi, 0xffffffff
jne 0x641837c6
test edx, edx
je 0x641837df
test bl, bl
je 0x641837df
mov bh, 1
jmp 0x641837e1
cmp edx, edi
seta al
mov byte [esp + 0x2f], al
test al, al
je 0x641837db
test bl, bl
je 0x641837db
mov bl, 1
jmp 0x641837e5
xor bl, bl
jmp 0x641837e5
xor bh, bh
mov bl, byte [esp + 0x2d]
mov ebp, dword [esp + 0x20]
lea edx, [esp + 0x38]
mov eax, dword [ebp]
push edx
push 0xd
lea edx, [esp + 0x88]
push edx
push ecx
lea ecx, [esp + 0x74]
push ecx
push 2
mov ecx, ebp
mov dword [esp + 0x50], 0
call dword [eax + 0x38]
mov edi, dword [esp + 0x24]
xor eax, eax
mov word [esp + 0x98], ax
cmp dword [esp + 0x38], edi
jne 0x64183851
mov ecx, dword [esi + 4]
lea eax, [edi + edi]
mov edx, dword [ecx]
push eax
lea eax, [esp + 0x84]
push eax
lea eax, [esp + 0xa4]
push eax
call dword [edx + 8]
test eax, eax
jne 0x6418384d
mov dword [esp + 0x24], eax
jmp 0x641838c9
mov edi, dword [esp + 0x24]
test bh, bh
je 0x641838c5
cmp byte [esp + 0x2f], 0
je 0x64183864
test bl, bl
je 0x641838c5
cmp dword [esp + 0x3c], edi
jne 0x641838c5
mov eax, dword [ebp]
push edi
lea ecx, [esp + 0x84]
push ecx
lea ecx, [esp + 0xa4]
push ecx
push 2
mov ecx, ebp
call dword [eax + 0x20]
test eax, eax
jne 0x641838c1
mov byte [esp + 0x1f], 8
test bl, bl
je 0x64183897
mov byte [esp + 0x1f], 0x18
mov dword [esp + 0x24], 0
jmp 0x641838c9
cmp dword [esp + 0x3c], edx
jbe 0x641838c1
mov cl, byte [esp + edx + 0x64]
mov al, cl
sub al, 0x61
cmp al, 0x19
ja 0x641838ba
sub cl, 0x20
mov byte [esp + edx + 0x64], cl
inc edx
cmp edx, dword [esp + 0x3c]
jb 0x641838a7
mov edi, dword [esp + 0x24]
test edi, edi
jne 0x641838fd
mov ebx, 1
xor eax, eax
mov dword [esp + 0x38], ebx
mov word [esp + 0x9c], ax
push dword [esp + 0x3c]
lea eax, [esp + 0x68]
push eax
mov byte [esp + 0x78], 0
call fcn.64188500
test al, al
jne 0x64183941
push 0x12be
jmp 0x641834dc
lea ecx, [edi + 0xc]
mov eax, 0x4ec4ec4f
mul ecx
mov ebx, edx
shr ebx, 2
add bl, 1
lea eax, [esp + 0x3c]
push eax
lea eax, [esp + 0x68]
push eax
mov ecx, esi
mov dword [esp + 0x40], ebx
call fcn.641869f0
mov edi, eax
test edi, edi
je 0x641838dc
push 0x12b4
push 0x641dfcc8
push edi
call fcn.641d6150
mov eax, edi
jmp 0x641843d6
movzx eax, bl
push eax
mov ecx, esi
mov dword [esp + 0x44], eax
call fcn.64184ed0
mov ebx, eax
mov dword [esp + 0x20], ebx
cmp ebx, 0xffffffff
jne 0x64183c69
cmp dword [esi + 0x4c], 0
jne 0x64183980
push 0x12c7
push 0x641dfcc8
push 0xb
call fcn.641d6150
mov eax, 0xa000011b
jmp 0x641843d6
mov eax, dword [esi + 0x48]
mov edx, dword [esi + 0x54]
mov edi, dword [eax + 0x4c]
shr edi, 5
add edx, edi
cmp edx, 0x10000
jb 0x641839bf
cmp byte [esp + 0x2cc], 0
push 0x12e0
push 0x641dfcc8
je 0x64183588
push 0xb
call fcn.641d6150
mov eax, 0xa000011b
jmp 0x641843d6
mov ecx, dword [esi + 4]
shl edx, 5
mov eax, dword [ecx]
push edx
call dword [eax + 0x18]
mov ebx, eax
test ebx, ebx
jne 0x641839db
mov eax, 0xa0000107
jmp 0x641843d6
mov eax, dword [esi + 0x54]
mov ecx, dword [esi + 4]
shl eax, 5
mov edx, dword [ecx]
push eax
push dword [esi + 0x60]
push ebx
call dword [edx + 4]
mov ecx, dword [esi + 4]
push dword [esi + 0x60]
mov eax, dword [ecx]
call dword [eax + 0x1c]
mov ecx, dword [esi + 4]
mov eax, edi
shl eax, 5
push eax
mov eax, dword [esi + 0x54]
shl eax, 5
mov dword [esi + 0x60], ebx
mov edx, dword [ecx]
push 0
add eax, ebx
push eax
call dword [edx]
mov ecx, dword [esi + 0x50]
add dword [esi + 0x54], edi
mov eax, dword [esi + 0x48]
mov edx, 1
mov byte [esi + 0x78], 1
mov dword [esp + 0x28], edx
mov dword [esp + 0x10], eax
cmp ecx, 2
jae 0x64183a39
mov ecx, dword [eax + 0x264]
mov edi, edx
xor ebx, ebx
mov dword [esp + 0x30], 0
mov dword [esi + 0x50], ecx
mov dword [esp + 0x34], edi
mov dword [esp + 0x44], ecx
mov dword [esp + 0x18], ebx
cmp edi, edx
jbe 0x64183a5a
mov edi, edx
push 0
lea edx, [esp + 0x38]
push edx
lea edx, [esp + 0x28]
push edx
push edi
push ecx
mov ecx, eax
call fcn.641887d0
mov ebp, eax
test ebp, ebp
jne 0x64183b65
cmp dword [esp + 0x30], eax
jne 0x64183a89
mov eax, dword [esp + 0x20]
mov dword [esp + 0x30], eax
jmp 0x64183aa9
mov ecx, dword [esp + 0x10]
push 0
push dword [esp + 0x24]
push dword [esi + 0x50]
call fcn.6418a2c0
mov ebp, eax
test ebp, ebp
jne 0x64183b5e
mov eax, dword [esp + 0x20]
mov edi, dword [esp + 0x34]
add ebx, edi
mov dword [esi + 0x50], eax
mov dword [esp + 0x18], ebx
cmp edi, 1
jbe 0x64183aed
mov ebx, 1
mov ecx, dword [esi + 0x50]
push 0
lea eax, [ecx + 1]
push eax
push ecx
mov ecx, dword [esp + 0x1c]
call fcn.6418a2c0
mov ebp, eax
test ebp, ebp
jne 0x64183b05
inc dword [esi + 0x50]
inc dword [esp + 0x18]
inc ebx
cmp ebx, edi
jb 0x64183ac0
mov ebx, dword [esp + 0x18]
mov eax, dword [esp + 0x20]
mov edx, dword [esp + 0x28]
sub edx, edi
lea ecx, [eax + edi]
mov dword [esp + 0x28], edx
je 0x64183b0c
mov eax, dword [esp + 0x10]
jmp 0x64183a54
push 0x70e
jmp 0x64183b6a
mov eax, dword [esp + 0x44]
mov ebx, dword [esp + 0x10]
cmp eax, 2
jb 0x64183b3c
cmp eax, dword [ebx + 0x264]
jae 0x64183b3c
push 0
push dword [esp + 0x34]
mov ecx, ebx
push eax
call fcn.6418a2c0
mov ebp, eax
test ebp, ebp
je 0x64183b3c
push 0x71d
jmp 0x64183b6a
push 0
push 0xfffffff
push dword [esi + 0x50]
mov ecx, ebx
call fcn.6418a2c0
mov ebp, eax
test ebp, ebp
je 0x64183c4b
push 0x721
jmp 0x64183b6a
push 0x703
jmp 0x64183b6a
push 0x6f9
push 0x641dfcc8
push ebp
call fcn.641d6150
mov ebx, dword [esp + 0x30]
test ebx, ebx
je 0x64183c2e
mov edi, dword [esp + 0x18]
mov dword [esp + 0x34], ebx
test edi, edi
je 0x64183bf2
lea ecx, [ecx]
test ebx, ebx
je 0x64183bf2
cmp ebx, 0xffffff0
jb 0x64183ba6
cmp ebx, 0xffffff7
jb 0x64183ba6
jne 0x64183bf2
mov ecx, dword [esp + 0x10]
add ecx, 0x27c
push 1
mov eax, dword [ecx]
push ebx
call dword [eax + 0x3c]
lea eax, [esp + 0x34]
push eax
push 0
push ebx
mov ebx, dword [esp + 0x1c]
mov ecx, ebx
call fcn.6418a2c0
mov dword [esp + 0x50], eax
test eax, eax
jne 0x64183bdc
dec edi
je 0x64183bf6
mov ebx, dword [esp + 0x34]
jmp 0x64183b90
push 0x72e
push 0x641dfcc8
push eax
call fcn.641d6150
mov edi, dword [esp + 0x50]
jmp 0x64183c30
mov ebx, dword [esp + 0x10]
mov eax, dword [esp + 0x44]
cmp eax, 2
jb 0x64183c2e
cmp eax, dword [ebx + 0x264]
jae 0x64183c2e
push 0
push 0xfffffff
push eax
mov ecx, ebx
call fcn.6418a2c0
mov edi, eax
test edi, edi
je 0x64183c2e
push 0x736
push 0x641dfcc8
push edi
call fcn.641d6150
jmp 0x64183c30
mov edi, ebp
test edi, edi
je 0x64183c4b
push 0x12f0
push 0x641dfcc8
push edi
call fcn.641d6150
mov eax, edi
jmp 0x641843d6
push dword [esp + 0x40]
mov ecx, esi
call fcn.64184ed0
mov dword [esp + 0x20], eax
cmp eax, 0xffffffff
jne 0x64183c69
push 0x12f5
jmp 0x64183583
mov eax, dword [esi + 0x48]
mov ecx, dword [eax + 0x18]
mov eax, dword [ecx]
mov eax, dword [eax]
call eax
mov ecx, dword [esi + 0x48]
sub eax, dword [ecx + 0x2e8]
sbb edx, dword [ecx + 0x2ec]
mov dword [esp + 0x58], eax
lea eax, [esp + 0x2e]
push eax
lea eax, [esp + 0x5c]
push eax
mov dword [esp + 0x64], edx
call fcn.6419b320
xor ebp, ebp
cmp byte [esp + 0x2cc], 0
mov dword [esp + 0x34], eax
mov dword [esp + 0x18], ebp
je 0x64183d78
mov ebp, dword [esp + 0x54]
mov ecx, dword [esi + 0x48]
test ebp, ebp
je 0x64183ec1
mov eax, dword [ebp + 0x280]
mov ecx, dword [ecx + 0xc]
push eax
mov dword [esp + 0x1c], eax
call fcn.64185490
mov ebx, eax
test ebx, ebx
je 0x64183d0a
cmp dword [ebx + 0x54], 1
jbe 0x64183cef
mov edi, dword [ebx + 0x60]
add edi, 0x20
je 0x64183cef
mov byte [ebx + 0x78], 1
jmp 0x64183d40
push 0x1312
push 0x641dfcc8
push 1
call fcn.641d6150
mov eax, 0xa000011c
jmp 0x641843d6
mov ecx, dword [esi + 0x48]
push 0
mov edi, dword [ecx + 0x44]
push edi
push 1
push dword [ebp + 0x280]
call fcn.64189370
mov ebp, eax
test ebp, ebp
je 0x64183d3d
push 0x1319
push 0x641dfcc8
push ebp
call fcn.641d6150
mov eax, ebp
jmp 0x641843d6
add edi, 0x20
mov ecx, dword [esi + 0x48]
cmp esi, dword [ecx + 0xc]
jne 0x64183d4c
xor ebp, ebp
jmp 0x64183d4f
mov ebp, dword [esi + 0x4c]
mov eax, dword [ecx]
push edi
call dword [eax + 0x3c]
cmp eax, ebp
je 0x64183d78
mov ecx, dword [esi + 0x48]
push ebp
mov eax, dword [ecx]
push edi
call dword [eax + 0x40]
test ebx, ebx
je 0x64183e86
mov eax, dword [ebx]
push 0
mov ecx, ebx
mov byte [ebx + 0x78], 1
call dword [eax + 0x18]
push dword [esi + 4]
lea eax, [esp + 0x78]
push eax
lea eax, [esp + 0x6c]
push eax
call fcn.641833e0
mov ebx, dword [esp + 0x20]
mov ecx, dword [esp + 0x38]
mov edi, ebx
shl edi, 5
add edi, dword [esi + 0x60]
cmp cl, 1
jbe 0x64183e60
xor eax, eax
cmp ax, word [esp + 0x9c]
je 0x64183e60
xor bl, bl
ror bl, 1
add bl, byte [esp + eax + 0x74]
inc eax
cmp eax, 0xb
jb 0x64183db5
mov eax, dword [esp + 0x40]
add eax, 0xfffffffe
imul eax, eax, 0x1a
mov bh, cl
lea ebp, [esp + 0x9c]
add ebp, eax
dec bh
mov al, bh
or al, 0x40
mov byte [edi], al
test bh, bh
je 0x64183e5c
jmp 0x64183df0
xor eax, eax
mov word [edi + 0x1a], ax
mov word [edi + 0xb], 0xf
mov byte [edi + 0xd], bl
mov ecx, dword [esi + 4]
push 0xa
mov edx, dword [ecx]
push ebp
lea eax, [edi + 1]
push eax
call dword [edx + 4]
movzx eax, word [ebp + 0xa]
mov word [edi + 0xe], ax
movzx eax, word [ebp + 0xc]
mov word [edi + 0x10], ax
movzx eax, word [ebp + 0xe]
mov word [edi + 0x12], ax
movzx eax, word [ebp + 0x10]
mov word [edi + 0x14], ax
movzx eax, word [ebp + 0x12]
mov word [edi + 0x16], ax
movzx eax, word [ebp + 0x14]
mov word [edi + 0x18], ax
movzx eax, word [ebp + 0x16]
mov word [edi + 0x1c], ax
movzx eax, word [ebp + 0x18]
mov word [edi + 0x1e], ax
add edi, 0x20
dec bh
sub ebp, 0x1a
mov byte [edi], bh
test bh, bh
jne 0x64183df0
mov ebx, dword [esp + 0x20]
mov eax, dword [esp + 0x54]
mov ecx, dword [esi + 4]
push 0x20
test eax, eax
je 0x641841a7
mov edx, dword [ecx]
add eax, 0x28c
push eax
push edi
call dword [edx + 4]
mov ebp, dword [esp + 0x34]
jmp 0x641841ef
mov edx, dword [esp + 0x54]
mov ecx, dword [esi + 0x48]
push 1
lea eax, [edi - 0x20]
push eax
push 1
push dword [edx + 0x280]
call fcn.64189370
mov edi, eax
test edi, edi
je 0x64183d78
push 0x1334
push 0x641dfcc8
push edi
call fcn.641d6150
mov eax, edi
jmp 0x641843d6
mov edx, dword [ecx + 0x264]
mov ebp, 1
mov eax, ebp
mov dword [esp + 0x48], ebp
mov dword [esp + 0x10], ecx
mov dword [esp + 0x18], 0
mov ebx, edx
mov dword [esp + 0x44], eax
mov dword [esp + 0x50], edx
xor edi, edi
lea ebx, [ebx]
cmp eax, ebp
jbe 0x64183ef6
mov eax, ebp
push 0
lea ebp, [esp + 0x48]
push ebp
lea ebp, [esp + 0x38]
push ebp
push eax
push edx
call fcn.641887d0
mov ebp, eax
test ebp, ebp
jne 0x64184015
cmp dword [esp + 0x18], eax
jne 0x64183f23
mov ecx, dword [esp + 0x30]
mov dword [esp + 0x18], ecx
jmp 0x64183f41
mov ecx, dword [esp + 0x10]
push 0
push dword [esp + 0x34]
push ebx
call fcn.6418a2c0
mov ebp, eax
test ebp, ebp
jne 0x6418400e
mov ecx, dword [esp + 0x30]
mov eax, dword [esp + 0x44]
add edi, eax
mov ebx, ecx
mov dword [esp + 0x58], eax
mov dword [esp + 0x28], edi
cmp eax, 1
jbe 0x64183f8c
mov edi, 1
jmp 0x64183f60
push 0
lea eax, [ecx + edi]
mov ecx, dword [esp + 0x14]
push eax
push ebx
call fcn.6418a2c0
mov ebp, eax
test ebp, ebp
jne 0x64183fa4
mov eax, dword [esp + 0x58]
inc dword [esp + 0x28]
mov ecx, dword [esp + 0x30]
inc edi
inc ebx
cmp edi, eax
jb 0x64183f60
mov edi, dword [esp + 0x28]
mov ebp, dword [esp + 0x48]
sub ebp, eax
lea edx, [ecx + eax]
mov dword [esp + 0x48], ebp
je 0x64183fba
mov ecx, dword [esp + 0x10]
jmp 0x64183ef0
push 0x70e
push 0x641dfcc8
push ebp
call fcn.641d6150
mov edi, dword [esp + 0x28]
jmp 0x64184025
mov ecx, dword [esp + 0x50]
mov eax, dword [esp + 0x10]
cmp ecx, 2
jb 0x64183fee
cmp ecx, dword [eax + 0x264]
jae 0x64183fee
push 0
push dword [esp + 0x1c]
push ecx
mov ecx, eax
call fcn.6418a2c0
mov ebp, eax
test ebp, ebp
je 0x64183fea
push 0x71d
jmp 0x6418401a
mov eax, dword [esp + 0x10]
push 0
push 0xfffffff
push ebx
mov ecx, eax
call fcn.6418a2c0
mov ebp, eax
test ebp, ebp
je 0x641840fb
push 0x721
jmp 0x6418401a
push 0x703
jmp 0x6418401a
push 0x6f9
push 0x641dfcc8
push ebp
call fcn.641d6150
mov eax, dword [esp + 0x18]
test eax, eax
je 0x641840de
mov ebx, eax
mov dword [esp + 0x48], ebx
test edi, edi
je 0x641840a2
jmp 0x64184040
test ebx, ebx
je 0x641840a2
cmp ebx, 0xffffff0
jb 0x64184056
cmp ebx, 0xffffff7
jb 0x64184056
jne 0x641840a2
mov ecx, dword [esp + 0x10]
add ecx, 0x27c
push 1
mov eax, dword [ecx]
push ebx
call dword [eax + 0x3c]
lea eax, [esp + 0x48]
push eax
push 0
push ebx
mov ebx, dword [esp + 0x1c]
mov ecx, ebx
call fcn.6418a2c0
mov dword [esp + 0x58], eax
test eax, eax
jne 0x6418408c
dec edi
je 0x641840a6
mov ebx, dword [esp + 0x48]
jmp 0x64184040
push 0x72e
push 0x641dfcc8
push eax
call fcn.641d6150
mov edi, dword [esp + 0x58]
jmp 0x641840e0
mov ebx, dword [esp + 0x10]
mov eax, dword [esp + 0x50]
cmp eax, 2
jb 0x641840de
cmp eax, dword [ebx + 0x264]
jae 0x641840de
push 0
push 0xfffffff
push eax
mov ecx, ebx
call fcn.6418a2c0
mov edi, eax
test edi, edi
je 0x641840de
push 0x736
push 0x641dfcc8
push edi
call fcn.641d6150
jmp 0x641840e0
mov edi, ebp
test edi, edi
je 0x641840fb
push 0x1340
push 0x641dfcc8
push edi
call fcn.641d6150
mov eax, edi
jmp 0x641843d6
mov eax, dword [esi + 0x48]
mov ecx, dword [esi + 4]
push dword [eax + 0x4c]
mov edi, dword [eax + 0x44]
mov edx, dword [ecx]
push 0
push edi
call dword [edx]
mov ecx, dword [esi + 4]
push 0xb
mov eax, dword [ecx]
push 0x20
push edi
call dword [eax]
mov ebp, dword [esp + 0x18]
mov byte [edi], 0x2e
mov byte [edi + 0xb], 0x10
mov ecx, dword [esi + 0x48]
push ebp
mov eax, dword [ecx]
push edi
call dword [eax + 0x40]
mov al, byte [esp + 0x2e]
mov byte [edi + 0xd], al
mov eax, dword [esp + 0x34]
mov word [edi + 0x16], ax
mov word [edi + 0xe], ax
shr eax, 0x10
mov word [edi + 0x18], ax
mov word [edi + 0x10], ax
mov ecx, dword [esi + 4]
push 0xb
mov eax, dword [ecx]
push 0x20
lea ebx, [edi + 0x20]
push ebx
call dword [eax]
mov byte [ebx], 0x2e
mov byte [edi + 0x21], 0x2e
mov byte [edi + 0x2b], 0x10
mov ecx, dword [esi + 0x48]
cmp esi, dword [ecx + 0xc]
je 0x64184178
push dword [esi + 0x4c]
mov eax, dword [ecx]
push ebx
call dword [eax + 0x40]
mov ecx, dword [esi + 0x48]
push 1
push edi
push 1
push ebp
call fcn.64189370
mov edi, eax
test edi, edi
je 0x64183d78
push 0x135f
push 0x641dfcc8
push edi
call fcn.641d6150
mov eax, edi
jmp 0x641843d6
mov eax, dword [ecx]
push 0
push edi
call dword [eax]
cmp byte [esp + 0x2cc], 0
je 0x641841cb
mov ecx, dword [esi + 0x48]
push dword [esp + 0x18]
mov eax, dword [ecx]
push edi
call dword [eax + 0x40]
mov byte [edi + 0xb], 0x30
jmp 0x641841cf
mov byte [edi + 0xb], 0x20
mov al, byte [esp + 0x2e]
mov ebp, dword [esp + 0x34]
mov byte [edi + 0xd], al
mov eax, ebp
shr eax, 0x10
mov word [edi + 0x16], bp
mov word [edi + 0xe], bp
mov word [edi + 0x18], ax
mov word [edi + 0x10], ax
mov ecx, dword [esi + 4]
push 0xb
mov eax, dword [ecx]
lea edx, [esp + 0x78]
push edx
push edi
call dword [eax + 4]
mov al, byte [esp + 0x1f]
mov byte [edi + 0xc], al
shr ebp, 0x10
mov word [edi + 0x12], bp
mov ecx, dword [esi + 4]
mov ebp, dword [esp + 0x4c]
push 0x2ac
mov byte [esi + 0x78], 1
mov eax, dword [ecx]
push 0
push ebp
call dword [eax]
mov eax, dword [esp + 0x18]
mov dword [ebp + 0x284], ebx
lea ebx, [ebp + 0x5e]
push ebx
mov dword [ebp + 0x280], eax
mov byte [ebp + 0x27d], 1
push 1
add ebp, 0x262
push ebp
push edi
call fcn.641858f0
cmp byte [esp + 0x38], 1
jbe 0x641842a5
xor eax, eax
cmp ax, word [esp + 0x9c]
je 0x641842a5
mov ebx, dword [esp + 0x4c]
mov byte [ebx + 0x27c], 2
mov ax, word [esp + 0x24]
mov word [ebx + 0x5c], ax
mov eax, dword [esp + 0x24]
mov ecx, dword [esi + 4]
add eax, eax
mov edx, dword [ecx]
push eax
lea eax, [esp + 0xa0]
push eax
lea eax, [ebx + 0x60]
push eax
call dword [edx + 4]
mov eax, edi
sub eax, dword [esi + 0x60]
sar eax, 5
sub eax, dword [esp + 0x20]
inc eax
mov dword [ebx + 0x288], eax
jmp 0x641842d3
mov ecx, dword [esp + 0x4c]
movzx eax, word [ebx]
mov ebx, ecx
mov byte [ecx + 0x27c], 1
mov word [ebx + 0x5c], ax
mov ecx, dword [esi + 4]
add eax, eax
mov edx, dword [ecx]
push eax
push ebp
lea eax, [ebx + 0x60]
push eax
call dword [edx + 4]
mov dword [ebx + 0x288], 1
movzx eax, byte [edi + 0xb]
push dword [ebx + 0x284]
mov dword [ebx + 0x40], eax
movzx eax, byte [edi + 0xb]
mov dword [ebx + 0x44], eax
mov eax, 1
mov word [ebx + 0x58], ax
mov ecx, dword [esi + 0x48]
push esi
call fcn.64186740
mov dword [ebx], eax
mov dword [ebx + 4], edx
mov eax, dword [edi + 0x1c]
mov dword [ebx + 0x30], eax
mov dword [ebx + 0x34], 0
movzx eax, byte [edi + 0xd]
movzx ecx, word [edi + 0x10]
push 0
push eax
movzx eax, word [edi + 0xe]
shl ecx, 0x10
or ecx, eax
push ecx
call fcn.6419b220
mov dword [ebx + 8], eax
mov dword [ebx + 0xc], edx
movzx ecx, word [edi + 0x12]
movzx eax, word [edi + 0x16]
push 0
shl ecx, 0x10
push 0
or ecx, eax
push ecx
call fcn.6419b220
mov dword [ebx + 0x10], eax
mov dword [ebx + 0x14], edx
movzx ecx, word [edi + 0x18]
movzx eax, word [edi + 0x16]
push 0
shl ecx, 0x10
push 0
or ecx, eax
push ecx
call fcn.6419b220
mov dword [ebx + 0x18], eax
mov dword [ebx + 0x1c], edx
mov ecx, dword [esi + 4]
push 0x20
mov edx, dword [ecx]
push edi
lea eax, [ebx + 0x28c]
push eax
call dword [edx + 4]
mov edi, dword [esp + 0x60]
test edi, edi
je 0x641843bd
cmp byte [esp + 0x2cc], 0
lea eax, [esp + 0x40]
push eax
push 1
mov dword [esp + 0x48], 0
mov ecx, esi
push ebx
je 0x641843ac
call fcn.64188da0
test eax, eax
jne 0x641843d4
mov eax, dword [esp + 0x40]
mov dword [edi], eax
jmp 0x641843d4
call fcn.64188f30
test eax, eax
jne 0x641843d4
mov eax, dword [esp + 0x40]
mov dword [edi], eax
jmp 0x641843d4
mov edx, dword [esp + 0x54]
test edx, edx
je 0x641843d4
mov ecx, dword [esi + 4]
push 0x2ac
mov eax, dword [ecx]
push ebx
push edx
call dword [eax + 4]
xor eax, eax
mov ecx, dword [esp + 0x2b8]
pop edi
pop esi
pop ebp
pop ebx
xor ecx, esp
call fcn.641db312
add esp, 0x2ac
ret 0x18
call 0x641d8820
int3