Function at 0x443190
Capabilities:
Encrypt data using speck

Disassembly:
push ebp
push edi
push esi
push ebx
sub esp, 0x35c
mov eax, dword [0x503568]
mov byte [0xdfd640], 1
mov edx, dword [esp + 0x378]
mov edi, dword [esp + 0x378]
mov byte [0x54c7e9], 0
mov dword [esp + 0x30], eax
mov eax, dword [esp + 0x370]
and edx, 8
mov dword [eax], 0xffffffff
movzx eax, byte [esp + 0x378]
and eax, 1
mov byte [esp + 0x3a], al
mov eax, dword [0x50356c]
mov dword [esp + 0x20], eax
and edi, 2
je 0x4434e8
test dword [esp + 0x378], 0x4000
jne 0x4434e8
mov eax, dword [esp + 0x378]
or ah, 0x10
mov dword [esp + 0x28], eax
mov eax, dword [0x503568]
test edx, edx
jne 0x443236
mov dword [0xdfe128], 0
mov dword [0x54c7e4], 0x515167
mov dword [0x54c7e0], 0x4413b0
cmp eax, 0xffffffff
je 0x445391
mov byte [esp + 0x38], 1
mov ebx, dword [0x503564]
xor edi, edi
mov eax, ebx
sub eax, 1
mov dword [esp + 0x1c], eax
jns 0x443267
jmp 0x443296
add edi, 1
cmp ebx, edi
je 0x443272
mov eax, edi
call fcn.00443020
test al, al
je 0x443260
mov esi, dword [esp + 0x1c]
cmp esi, edi
jl 0x443296
lea ebx, [edi - 1]
jmp 0x443287
sub esi, 1
cmp esi, ebx
je 0x443292
mov eax, esi
call fcn.00443020
test al, al
je 0x443280
mov dword [esp + 0x1c], esi
mov dword [esp + 0x40], 0
mov dword [esp + 0x3c], 0
mov byte [esp + 0x2c], 0
mov byte [esp + 0x59], 1
mov byte [esp + 0x39], 0
mov byte [esp + 0x3b], 0
mov byte [esp + 0x3a], 0
mov ebp, 0xf579b6
xor ecx, ecx
mov dword [esp + 0x34], edi
xor edx, edx
mov edi, ebp
mov dword [esp + 0x6c], 0
mov ebp, ecx
mov byte [esp + 0x18], 0
jmp 0x4432f6
add ebp, 0x64
mov dword [esp + 0x6c], edx
add edi, 0x160
cmp edx, 0x17
je 0x443380
add edx, 1
cmp byte [edi], 0x7e
jne 0x4432e0
movzx eax, byte [edi + 1]
add ebp, 0x64
lea ebx, [eax - 0x65]
cmp bl, 6
jbe 0x4432e3
mov esi, dword [edi + 0xe]
test esi, esi
jle 0x4432e3
mov dword [esp + 0x24], edx
xor esi, esi
lea esi, [esi]
lea eax, [ebp + esi]
call fcn.00443020
mov ebx, eax
test al, al
je 0x443360
mov eax, dword [esp + 0x28]
mov ecx, 1
mov edx, 0x25
mov dword [esp], 0
mov dword [esp + 4], eax
lea eax, [esp + 0x250]
call fcn.00442dd0
test eax, eax
jne 0x4453a0
mov byte [esp + 0x18], bl
add esi, 1
cmp dword [edi + 0xe], esi
jg 0x443320
mov edx, dword [esp + 0x24]
add edi, 0x160
mov dword [esp + 0x6c], edx
cmp edx, 0x17
jne 0x4432f6
nop
mov eax, dword [0x503568]
mov edi, dword [esp + 0x34]
cmp eax, 0xffffffff
je 0x44360c
cmp dword [0x503564], 0x18
jg 0x44375c
cmp dword [0x503564], 0x19
jg 0x443e03
cmp dword [0x503564], 0x1a
jg 0x443e2b
cmp dword [0x503564], 0x1b
jg 0x443e53
cmp dword [0x503564], 0x1c
jg 0x443e7b
cmp dword [0x503564], 0x1d
jg 0x443ea3
cmp dword [0x503564], 0x1e
jg 0x443ecb
cmp dword [0x503564], 0x1f
jg 0x443ef3
cmp dword [0x503564], 0x20
jg 0x443f1b
cmp dword [0x503564], 0x21
jg 0x443f43
cmp dword [0x503564], 0x22
jle 0x443446
imul eax, eax, 0x2100
add eax, 0xf27760
mov dword [esp], eax
call fcn.00441310
test al, al
jne 0x443f80
mov eax, dword [0x503568]
cmp eax, 0xffffffff
je 0x4454da
cmp dword [0x503564], 0x23
jle 0x443478
imul eax, eax, 0x2100
add eax, 0xf278c0
mov dword [esp], eax
call fcn.00441310
test al, al
jne 0x4454ee
mov eax, dword [0x503568]
cmp eax, 0xffffffff
je 0x4455eb
cmp dword [0x503564], 0x24
mov edx, eax
jle 0x4434ad
imul eax, eax, 0x2100
add eax, 0xf27a20
mov dword [esp], eax
call fcn.00441310
test al, al
jne 0x4455ff
mov edx, dword [0x503568]
cmp edx, 0xffffffff
je 0x445639
cmp dword [0x503564], 0x25
jle 0x4434d1
imul eax, edx, 0x2100
add eax, 0xf27b80
mov dword [esp], eax
call fcn.00441310
test al, al
jne 0x44564d
mov dword [esp + 0x24], 0x26
mov ebp, 0x25
jmp 0x4437d7
mov eax, dword [0x503568]
test dword [esp + 0x378], 0x1000
jne 0x445374
mov ecx, dword [esp + 0x378]
test edx, edx
setne byte [esp + 0x38]
mov dword [esp + 0x28], ecx
cmp eax, 0xffffffff
jne 0x443244
test edi, edi
jne 0x443528
cmp byte [esp + 0x3a], 0
je 0x444588
mov eax, dword [esp + 0x378]
mov byte [esp + 0x18], 0
mov dword [esp + 0x28], eax
test edi, edi
je 0x4456b5
xor ebx, ebx
mov eax, 0xffffffff
xor edi, edi
lea esi, [esi]
cmp eax, 0xffffffff
je 0x444b38
cmp dword [0x503564], edi
jle 0x444b50
imul eax, eax, 0x2100
lea eax, [ebx + eax + 0xf248a0]
mov dword [esp], eax
call fcn.00441310
test al, al
je 0x444b50
lea esi, [edi - 1]
mov ebx, 0x1e40
mov ebp, 0x16
mov eax, dword [0x503568]
cmp eax, 0xffffffff
je 0x444ae0
cmp dword [0x503564], ebp
jle 0x444b00
imul eax, eax, 0x2100
lea eax, [ebx + eax + 0xf248a0]
mov dword [esp], eax
call fcn.00441310
test al, al
je 0x444b00
mov dword [esp + 0x1c], ebp
mov byte [esp + 0x3b], al
mov dword [esp + 0x3c], 1
mov byte [esp + 0x2c], 0
mov byte [esp + 0x59], 0
mov eax, dword [esp + 0x378]
and eax, 1
cmp byte [esp + 0x18], 0
mov dword [esp + 0x40], eax
jne 0x445a2b
mov eax, dword [0x503568]
mov byte [esp + 0x39], 0
cmp eax, 0xffffffff
jne 0x443392
mov dword [esp], 0xf59aa0
call fcn.00441310
test al, al
jne 0x44377a
mov eax, dword [0x503568]
cmp eax, 0xffffffff
jne 0x44339f
mov dword [esp], 0xf59c00
call fcn.00441310
test al, al
jne 0x443e1e
mov eax, dword [0x503568]
cmp eax, 0xffffffff
jne 0x4433ac
mov dword [esp], 0xf59d60
call fcn.00441310
test al, al
jne 0x443e46
mov eax, dword [0x503568]
cmp eax, 0xffffffff
jne 0x4433b9
mov dword [esp], 0xf59ec0
call fcn.00441310
test al, al
jne 0x443e6e
mov eax, dword [0x503568]
cmp eax, 0xffffffff
jne 0x4433c6
mov dword [esp], 0xf5a020
call fcn.00441310
test al, al
jne 0x443e96
mov eax, dword [0x503568]
cmp eax, 0xffffffff
jne 0x4433d3
mov dword [esp], 0xf5a180
call fcn.00441310
test al, al
jne 0x443ebe
mov eax, dword [0x503568]
cmp eax, 0xffffffff
jne 0x4433e0
mov dword [esp], 0xf5a2e0
call fcn.00441310
test al, al
jne 0x443ee6
mov eax, dword [0x503568]
cmp eax, 0xffffffff
jne 0x4433ed
mov dword [esp], 0xf5a440
call fcn.00441310
test al, al
jne 0x443f0e
mov eax, dword [0x503568]
cmp eax, 0xffffffff
jne 0x4433fa
mov dword [esp], 0xf5a5a0
call fcn.00441310
test al, al
jne 0x443f36
mov eax, dword [0x503568]
cmp eax, 0xffffffff
jne 0x443407
mov dword [esp], 0xf5a700
call fcn.00441310
test al, al
je 0x443f5e
mov dword [esp + 0x24], 0x21
jmp 0x443788
add eax, 1
imul eax, eax, 0x2100
add eax, 0xf248a0
mov dword [esp], eax
call fcn.00441310
test al, al
je 0x443620
mov dword [esp + 0x24], 0x18
lea esi, [esi]
mov eax, dword [esp + 0x24]
mov ebx, 0x32e0
mov ebp, 0x25
lea esi, [eax - 1]
lea esi, [esi]
mov eax, dword [0x503568]
cmp eax, 0xffffffff
je 0x444aa0
cmp dword [0x503564], ebp
jle 0x444ac0
imul eax, eax, 0x2100
lea eax, [ebx + eax + 0xf248a0]
mov dword [esp], eax
call fcn.00441310
test al, al
je 0x444ac0
movzx eax, byte [0xde8308]
mov ecx, dword [esp + 0x24]
xor ebx, ebx
cmp dword [esp + 0x1c], edi
mov word [0xdfe130], bx
mov word [0xdfe134], ax
mov edx, eax
setl al
cmp ebp, ecx
setl cl
and eax, ecx
xor eax, 1
or al, byte [esp + 0x18]
mov byte [esp + 0x58], al
je 0x445442
test dl, dl
jne 0x443821
mov eax, 0x32
mov word [0xdfe132], ax
cmp byte [esp + 0x2c], 0
jne 0x4453bd
test dword [esp + 0x378], 0x800
je 0x443844
mov eax, 1
mov word [0xdfe130], ax
mov eax, dword [0x503558]
or dword [eax + 0x70408], 1
call fcn.0048a8b0
movzx esi, word [0xdfe134]
test si, si
jne 0x4452ac
movzx ebx, byte [0x54b7e6]
movzx eax, byte [0xde8316]
mov ecx, dword [esp + 0x378]
test bl, bl
cmovne ebx, eax
mov eax, dword [esp + 0x30]
shr ecx, 6
and ecx, 1
add eax, 1
mov byte [esp + 0x30], cl
mov ecx, dword [esp + 0x374]
imul eax, eax, 0x64
mov dword [esp], ecx
mov dword [esp + 0x44], eax
mov eax, dword [esp + 0x378]
and eax, 0x20
mov dword [esp + 0x2c], eax
call sub.msvcrt.dll_strlen
xor ecx, ecx
mov edx, eax
mov eax, dword [esp + 0x2c]
test eax, eax
setne cl
xor eax, eax
cmp dword [esp + 0x20], 0xffffffff
setne al
add eax, ecx
movzx ecx, byte [esp + 0x18]
add eax, ecx
mov ecx, dword [esp + 0x3c]
add eax, ecx
mov ecx, dword [esp + 0x40]
add eax, ecx
cmp edx, 0xf
seta dl
movzx edx, dl
add eax, edx
mov dword [esp + 0x34], eax
test bl, bl
jne 0x443bc9
mov eax, dword [esp + 0x1c]
mov edx, esi
lea ebx, [esp + 0x70]
mov esi, ebp
mov ebp, edi
mov ecx, eax
add eax, 0x61
add ecx, 0x49
mov word [esp + 0x4c], ax
mov word [esp + 0x48], cx
cmp word [0xdfe130], 0
jne 0x444070
test dx, dx
je 0x44394b
mov eax, dword [0x503568]
cmp eax, 0xffffffff
jne 0x445384
call fcn.0047ded0
cmp word [0xdfe130], 0
jne 0x444090
lea eax, [esp + 0x110]
mov dword [esp + 4], str.Inven:
mov dword [esp], eax
call fcn.004412c0
mov eax, dword [esp + 0x1c]
cmp eax, ebp
jl 0x4439b3
cmp eax, 0x18
movzx edx, word [esp + 0x48]
lea ecx, [ebp + 0x49]
lea eax, [ebp + 0x61]
cmovl dx, word [esp + 0x4c]
cmp ebp, 0x18
mov dword [esp + 4], str.__c__c_
cmovge eax, ecx
mov dword [esp], ebx
movsx edx, dx
cwde
mov dword [esp + 0xc], edx
mov dword [esp + 8], eax
call fcn.004412c0
lea eax, [esp + 0x110]
mov dword [esp + 4], ebx
mov dword [esp], eax
call sub.msvcrt.dll_strcat
lea eax, [esp + 0x110]
mov dword [esp], eax
call sub.msvcrt.dll_strlen
cmp word [0xdfe134], 0
jne 0x444f18
lea ecx, [esp + 0x110]
add eax, ecx
cmp dword [esp + 0x34], 3
jg 0x44534c
cmp byte [esp + 0x3a], 0
mov dword [eax + 4], 0x6573206f
mov dword [eax], 0x74202a20
mov dword [eax + 7], 0x2c6565
jne 0x445307
cmp byte [esp + 0x38], 0
je 0x444117
nop
lea eax, [esp + 0x110]
mov dword [esp], eax
call sub.msvcrt.dll_strlen
lea ecx, [esp + 0x110]
add eax, ecx
cmp byte [esp + 0x30], 0
mov dword [eax], 0x74204020
mov dword [eax + 4], 0x616e206f
mov dword [eax + 8], 0x2c656d
jne 0x444ec8
cmp byte [esp + 0x39], 0
je 0x444138
cmp byte [esp + 0x18], 0
je 0x444138
lea eax, [esp + 0x110]
mov dword [esp], eax
call sub.msvcrt.dll_strlen
lea ecx, [esp + 0x110]
add eax, ecx
mov dword [eax], 0x66202120
mov dword [eax + 4], 0x6220726f
mov dword [eax + 8], 0x2c6761
mov eax, dword [esp + 0x2c]
test eax, eax
je 0x443ac6
lea eax, [esp + 0x110]
mov dword [esp], eax
call sub.msvcrt.dll_strlen
lea ecx, [esp + 0x110]
mov edx, 0x2c
add eax, ecx
mov dword [eax], 0x74202d20
mov dword [eax + 4], 0x7773206f
mov dword [eax + 8], 0x68637469
mov word [eax + 0xc], dx
cmp dword [esp + 0x20], 0xffffffff
je 0x443b00
lea eax, [esp + 0x110]
mov dword [esp], eax
call sub.msvcrt.dll_strlen
lea ecx, [esp + 0x110]
add eax, ecx
mov dword [eax + 8], 0x73657765
mov dword [eax], 0x66202b20
mov dword [eax + 4], 0x6e20726f
mov dword [eax + 0xb], 0x2c7473
lea eax, [esp + 0x110]
mov dword [esp], eax
call sub.msvcrt.dll_strlen
mov edi, eax
mov eax, dword [esp + 0x374]
mov dword [esp], eax
call sub.msvcrt.dll_strlen
add eax, edi
cmp eax, 0x48
jbe 0x444d60
mov byte [esp + edi + 0x10f], 0
mov eax, dword [esp + 0x374]
mov dword [esp + 4], str.__s___s
mov dword [esp], ebx
mov dword [esp + 0xc], eax
lea eax, [esp + 0x110]
mov dword [esp + 8], eax
call fcn.004412c0
mov dword [esp], ebx
call fcn.004237b0
call fcn.0040dac0
movsx edx, al
lea eax, [edx - 0xa]
cmp al, 0x36
ja case.0x443b77.1
movzx eax, al
jmp dword [eax*4 + 0x51522c]
cmp word [0xdfe130], 0
jne 0x445585
mov eax, dword [esp + 0x1c]
mov esi, 0xffffffff
cmp eax, edi
cmove esi, eax
mov dword [esp + 0x6c], esi
mov eax, esi
call fcn.00443020
test al, al
jne 0x444244
lea esi, [esi]
cmp byte [0xde8369], 0
je 0x4450f0
call fcn.0040e990
movzx esi, word [0xdfe134]
cmp byte [0x54c7e8], 0
jne 0x444a87
cmp word [0xdfe130], 0
jne 0x444b70
test si, si
je 0x443c0d
mov eax, dword [0x503568]
cmp eax, 0xffffffff
je 0x4452a2
mov dword [esp], eax
call fcn.0047e590
cmp word [0xdfe130], 0
jne 0x444498
lea eax, [esp + 0x110]
mov dword [esp + 4], str.Inven:
lea esi, [esp + 0x70]
mov dword [esp], eax
call fcn.004412c0
cmp dword [esp + 0x1c], edi
jl 0x443c81
mov ecx, dword [esp + 0x1c]
lea esi, [esp + 0x70]
mov dword [esp + 4], str.__c__c_
mov dword [esp], esi
mov eax, ecx
mov edx, ecx
add eax, 0x61
add edx, 0x49
cmp ecx, 0x17
cmovle edx, eax
lea ecx, [edi + 0x61]
lea eax, [edi + 0x49]
cmp edi, 0x17
cmovle eax, ecx
movsx edx, dx
cwde
mov dword [esp + 0xc], edx
mov dword [esp + 8], eax
call fcn.004412c0
lea eax, [esp + 0x110]
mov dword [esp + 4], esi
mov dword [esp], eax
call sub.msvcrt.dll_strcat
lea eax, [esp + 0x110]
mov dword [esp], eax
call sub.msvcrt.dll_strlen
cmp word [0xdfe134], 0
jne 0x445070
lea ecx, [esp + 0x110]
add eax, ecx
cmp dword [esp + 0x34], 3
jle 0x4452e3
cmp byte [esp + 0x3a], 0
mov dword [eax], 0x73202a20
mov dword [eax + 4], 0x2c6565
jne 0x444f8d
cmp byte [esp + 0x38], 0
je 0x44451c
lea esi, [esi]
lea eax, [esp + 0x110]
mov dword [esp], eax
call sub.msvcrt.dll_strlen
lea ecx, [esp + 0x110]
add eax, ecx
cmp byte [esp + 0x30], 0
mov dword [eax], 0x6e204020
mov dword [eax + 4], 0x2c656d61
mov byte [eax + 8], 0
jne 0x444fd8
cmp byte [esp + 0x39], 0
je 0x444540
cmp byte [esp + 0x18], 0
je 0x4453f7
lea eax, [esp + 0x110]
mov dword [esp], eax
call sub.msvcrt.dll_strlen
lea ecx, [esp + 0x110]
add eax, ecx
mov dword [eax], 0x62202120
mov dword [eax + 4], 0x2c6761
mov eax, dword [esp + 0x2c]
test eax, eax
jne 0x44454c
cmp dword [esp + 0x20], 0xffffffff
je 0x443d86
lea eax, [esp + 0x110]
mov dword [esp], eax
call sub.msvcrt.dll_strlen
lea ecx, [esp + 0x110]
add eax, ecx
mov dword [eax + 4], 0x73657765
mov dword [eax], 0x6e202b20
mov dword [eax + 7], 0x2c7473
lea eax, [esp + 0x110]
mov dword [esp], eax
call sub.msvcrt.dll_strlen
mov ebx, eax
mov eax, dword [esp + 0x374]
mov dword [esp], eax
call sub.msvcrt.dll_strlen
add eax, ebx
cmp eax, 0x48
jbe 0x444d80
mov byte [esp + ebx + 0x10f], 0
mov eax, dword [esp + 0x374]
mov dword [esp], esi
mov dword [esp + 4], str.__s___s
mov dword [esp + 0xc], eax
lea eax, [esp + 0x110]
mov dword [esp + 8], eax
call fcn.004412c0
mov dword [esp], esi
call fcn.004237b0
call fcn.0040dac0
mov esi, eax
lea eax, [esi - 0xa]
cmp al, 0x36
ja case.0x443dfc.1
movzx eax, al
jmp dword [eax*4 + 0x515308]
imul eax, eax, 0x2100
add eax, 0xf26b00
mov dword [esp], eax
call fcn.00441310
test al, al
je 0x443642
mov dword [esp + 0x24], 0x19
jmp 0x443788
imul eax, eax, 0x2100
add eax, 0xf26c60
mov dword [esp], eax
call fcn.00441310
test al, al
je 0x443664
mov dword [esp + 0x24], 0x1a
jmp 0x443788
imul eax, eax, 0x2100
add eax, 0xf26dc0
mov dword [esp], eax
call fcn.00441310
test al, al
je 0x443686
mov dword [esp + 0x24], 0x1b
jmp 0x443788
imul eax, eax, 0x2100
add eax, 0xf26f20
mov dword [esp], eax
call fcn.00441310
test al, al
je 0x4436a8
mov dword [esp + 0x24], 0x1c
jmp 0x443788
imul eax, eax, 0x2100
add eax, 0xf27080
mov dword [esp], eax
call fcn.00441310
test al, al
je 0x4436ca
mov dword [esp + 0x24], 0x1d
jmp 0x443788
imul eax, eax, 0x2100
add eax, 0xf271e0
mov dword [esp], eax
call fcn.00441310
test al, al
je 0x4436ec
mov dword [esp + 0x24], 0x1e
jmp 0x443788
imul eax, eax, 0x2100
add eax, 0xf27340
mov dword [esp], eax
call fcn.00441310
test al, al
je 0x44370e
mov dword [esp + 0x24], 0x1f
jmp 0x443788
imul eax, eax, 0x2100
add eax, 0xf274a0
mov dword [esp], eax
call fcn.00441310
test al, al
je 0x443730
mov dword [esp + 0x24], 0x20
jmp 0x443788
imul eax, eax, 0x2100
add eax, 0xf27600
mov dword [esp], eax
call fcn.00441310
test al, al
jne 0x443752
mov eax, dword [0x503568]
cmp eax, 0xffffffff
jne 0x443414
mov dword [esp], 0xf5a860
call fcn.00441310
test al, al
je 0x443438
mov dword [esp + 0x24], 0x22
jmp 0x443788
movsx ecx, dl
mov byte [esp + 0x5a], dl
mov dword [esp], ecx
mov dword [esp + 0x54], ecx
call dword [sym.imp.msvcrt.dll_isupper]
mov ecx, dword [esp + 0x54]
movzx edx, byte [esp + 0x5a]
test eax, eax
mov dword [esp + 0x50], eax
je 0x443fc2
mov dword [esp], ecx
call dword [sym.imp.msvcrt.dll_tolower]
mov ecx, eax
mov edx, eax
mov dword [esp], ecx
mov dword [esp + 0x54], ecx
mov byte [esp + 0x5a], dl
call dword [sym.imp.msvcrt.dll_islower]
mov ecx, dword [esp + 0x54]
cmp word [0xdfe130], 0
jne 0x445598
test eax, eax
je 0x4456ab
sub ecx, 0x61
cmp ecx, 0x17
ja 0x4456ab
mov eax, dword [0x503568]
imul edx, ecx, 0x160
cmp eax, 0xffffffff
je 0x445753
imul eax, eax, 0x2100
cmp byte [edx + eax + 0xf248b6], 0
mov eax, 0xffffffff
cmove ecx, eax
mov eax, ecx
mov dword [esp + 0x6c], ecx
mov dword [esp + 0x54], ecx
call fcn.00443020
mov ecx, dword [esp + 0x54]
test al, al
jne 0x4443ab
nop
cmp byte [0xde8369], 0
jne 0x445100
call fcn.0040e9f0
movzx edx, word [0xdfe134]
cmp word [0xdfe130], 0
je 0x443925
lea esi, [esi]
nop
test dx, dx
je 0x444090
call fcn.0047ec20
cmp word [0xdfe130], 0
je 0x44394b
lea esi, [esi]
nop
lea eax, [esp + 0x110]
mov dword [esp + 4], str.Equip:
mov dword [esp], eax
call fcn.004412c0
mov eax, dword [esp + 0x24]
cmp esi, eax
jge 0x4451c8
cmp word [0xdfe134], 0
je 0x445190
lea eax, [esp + 0x110]
mov dword [esp], eax
call sub.msvcrt.dll_strlen
cmp byte [esp + 0x3b], 0
je 0x444c70
lea ecx, [esp + 0x110]
add eax, ecx
cmp dword [esp + 0x34], 3
jg 0x4452bd
mov ecx, 0x2c
mov dword [eax], 0x66202f20
mov word [eax + 0xc], cx
cmp byte [esp + 0x38], 0
mov dword [eax + 4], 0x4920726f
mov dword [eax + 8], 0x6e65766e
jne 0x443a10
cmp byte [esp + 0x30], 0
jne 0x444ec8
cmp byte [esp + 0x18], 0
je 0x444138
cmp byte [esp + 0x39], 0
jne 0x443a5d
lea esi, [esi]
mov edi, dword [esp + 0x2c]
test edi, edi
jne 0x443a91
jmp 0x443ac6
mov eax, dword [esp + 0x28]
mov ecx, dword [esp + 0x3c]
mov dword [esp + 4], eax
mov eax, dword [esp + 0x40]
mov dword [esp], eax
lea eax, [esp + 0x6c]
call fcn.00442dd0
test eax, eax
je 0x444040
cmp dword [0x503568], 0xffffffff
mov ecx, dword [esp + 0x6c]
je 0x44570f
cmp ecx, 0x63
jle 0x4441a6
mov eax, 0x51eb851f
imul ecx
mov eax, edx
mov edx, ecx
sar eax, 5
sar edx, 0x1f
sub eax, edx
imul eax, eax, 0x64
sub ecx, eax
mov dword [esp + 0x6c], ecx
movzx eax, byte [esp + 0x3a]
movzx edx, byte [esp + 0x59]
xor eax, 1
cmp ecx, dword [0x503564]
cmovl eax, edx
test al, al
jne 0x444040
mov eax, ecx
mov dword [esp + 0x50], ecx
call fcn.00443020
mov ecx, dword [esp + 0x50]
test al, al
je 0x444040
mov esi, ecx
jmp 0x444244
cmp word [0xdfe134], 0
je 0x4455d1
call fcn.00409b30
xor eax, eax
mov word [0xdfe134], ax
call fcn.0046f230
movzx edx, word [0xdfe134]
jmp 0x443917
cmp word [0xdfe130], 0
jne 0x445519
mov eax, dword [esp + 0x1c]
mov edx, 0xffffffff
cmp eax, ebp
cmove edx, eax
mov eax, edx
mov dword [esp + 0x6c], edx
mov dword [esp + 0x50], edx
call fcn.00443020
mov edx, dword [esp + 0x50]
test al, al
je 0x444040
mov esi, edx
mov eax, dword [esp + 0x370]
mov dword [eax], esi
cmp dword [0x503568], 0xffffffff
je 0x444636
mov eax, dword [esp + 0x44]
mov edi, 1
add eax, esi
mov esi, eax
mov eax, dword [esp + 0x370]
mov dword [eax], esi
movzx esi, word [0xdfe134]
lea esi, [esi]
nop
mov eax, 0xffffffff
mov edx, 0xffffffff
mov word [0x503544], ax
mov word [0x503542], dx
test si, si
jne 0x445298
mov byte [0xdfd640], 0
call fcn.0046f230
xor eax, eax
mov byte [0xdfe12e], 0
mov word [0xdfe134], ax
xor eax, eax
mov word [0xdfe12c], ax
mov eax, dword [0x503558]
mov dword [0xdfe128], 0
or dword [eax + 0x70408], 3
call fcn.0048a8b0
mov eax, edi
test al, al
je 0x444eae
call fcn.00423840
movzx eax, byte [esp + 0x58]
mov byte [0x54c7e8], 0
add esp, 0x35c
pop ebx
pop esi
pop edi
pop ebp
ret
mov eax, esi
movsx edx, al
mov dword [esp], edx
mov dword [esp + 0x48], edx
call dword [sym.imp.msvcrt.dll_isupper]
mov edx, dword [esp + 0x48]
test eax, eax
mov dword [esp + 0x50], eax
je 0x444333
mov dword [esp], edx
call dword [sym.imp.msvcrt.dll_tolower]
mov edx, eax
mov esi, eax
mov dword [esp], edx
mov dword [esp + 0x48], edx
call dword [sym.imp.msvcrt.dll_islower]
mov edx, dword [esp + 0x48]
cmp word [0xdfe130], 0
jne 0x44554a
test eax, eax
je 0x445a21
lea ecx, [edx - 0x61]
cmp ecx, 0x17
ja 0x445a21
mov eax, dword [0x503568]
imul edx, ecx, 0x160
cmp eax, 0xffffffff
je 0x4456dd
imul eax, eax, 0x2100
cmp byte [edx + eax + 0xf248b6], 0
mov eax, 0xffffffff
cmove ecx, eax
mov eax, ecx
mov dword [esp + 0x6c], ecx
mov dword [esp + 0x48], ecx
call fcn.00443020
mov ecx, dword [esp + 0x48]
test al, al
je 0x443bb0
mov ebx, dword [esp + 0x50]
test ebx, ebx
jne 0x445880
mov eax, dword [esp + 0x370]
mov dword [eax], ecx
cmp dword [0x503568], 0xffffffff
je 0x444636
mov edi, dword [esp + 0x44]
movzx esi, word [0xdfe134]
add edi, ecx
mov dword [eax], edi
mov edi, 1
jmp 0x444280
mov eax, esi
mov ecx, dword [esp + 0x3c]
movsx edx, al
mov eax, dword [esp + 0x28]
mov dword [esp + 4], eax
mov eax, dword [esp + 0x40]
mov dword [esp], eax
lea eax, [esp + 0x6c]
call fcn.00442dd0
test eax, eax
je 0x443bb0
cmp dword [0x503568], 0xffffffff
mov esi, dword [esp + 0x6c]
je 0x4456ec
cmp esi, 0x63
jle 0x44444b
mov eax, 0x51eb851f
mov ecx, esi
imul esi
sar ecx, 0x1f
mov eax, edx
sar eax, 5
sub eax, ecx
imul eax, eax, 0x64
sub esi, eax
mov dword [esp + 0x6c], esi
movzx eax, byte [esp + 0x59]
cmp dword [0x503564], esi
jg 0x444460
movzx eax, byte [esp + 0x3a]
xor eax, 1
test al, al
je 0x443b9e
jmp 0x443bb0
cmp word [0xdfe134], 0
jne 0x4454fb
call fcn.00409a70
mov eax, 1
mov esi, 1
mov word [0xdfe134], ax
jmp 0x443bc9
lea eax, [esp + 0x110]
mov dword [esp + 4], str.Equip:
lea esi, [esp + 0x70]
mov dword [esp], eax
call fcn.004412c0
mov eax, dword [esp + 0x24]
cmp ebp, eax
jge 0x445208
cmp word [0xdfe134], 0
je 0x445158
lea eax, [esp + 0x110]
mov dword [esp], eax
call sub.msvcrt.dll_strlen
cmp byte [esp + 0x3b], 0
je 0x444b88
lea ecx, [esp + 0x110]
add eax, ecx
cmp dword [esp + 0x34], 3
jle 0x445245
mov ecx, 0x2c
cmp byte [esp + 0x38], 0
mov dword [eax], 0x49202f20
mov dword [eax + 4], 0x6e65766e
mov word [eax + 8], cx
jne 0x443cd8
cmp byte [esp + 0x30], 0
jne 0x444fd8
cmp byte [esp + 0x18], 0
je 0x444540
cmp byte [esp + 0x39], 0
jne 0x443d22
lea esi, [esi]
mov eax, dword [esp + 0x2c]
test eax, eax
je 0x443d53
lea eax, [esp + 0x110]
mov dword [esp], eax
call sub.msvcrt.dll_strlen
lea ecx, [esp + 0x110]
add eax, ecx
cmp dword [esp + 0x20], 0xffffffff
mov dword [eax + 4], 0x63746977
mov dword [eax], 0x73202d20
mov dword [eax + 7], 0x2c6863
jne 0x443d5a
jmp 0x443d86
xor edi, edi
cmp byte [0x54b7e6], 0
mov byte [0xdfe12e], 0
mov word [0xdfe12c], di
mov dword [0xdfe128], 0
je 0x4445b8
cmp byte [0xde8316], 0
jne 0x445926
mov byte [esp + 0x58], 0
movzx eax, byte [esp + 0x58]
add esp, 0x35c
pop ebx
pop esi
pop edi
pop ebp
ret
mov eax, 0x32
mov byte [esp + 0x58], 0
movzx esi, word [0xdfe134]
xor edi, edi
mov word [0xdfe132], ax
jmp 0x444280
cmp byte [esp + 0x38], 0
je 0x444647
mov eax, dword [esp + 0x28]
mov dword [esp + 4], eax
lea eax, [esp + 0x250]
mov dword [esp], eax
call dword [0x54c7e0]
test al, al
je 0x444647
mov eax, dword [esp + 0x250]
mov ecx, dword [esp + 0x370]
mov dword [ecx], eax
cmp dword [0x503568], 0xffffffff
je 0x444636
mov ecx, dword [esp + 0x44]
add eax, ecx
mov ecx, dword [esp + 0x370]
mov dword [ecx], eax
movzx esi, word [0xdfe134]
mov edi, 1
jmp 0x444280
cmp byte [0xde8369], 0
jne 0x4456a1
call fcn.0040e9f0
movzx edx, word [0xdfe134]
jmp 0x443917
cmp byte [esp + 0x3b], 0
je 0x444040
cmp byte [esp + 0x3a], 0
je 0x444040
movzx edx, word [0xdfe134]
test dx, dx
jne 0x445738
xor eax, eax
cmp word [0xdfe130], 0
sete al
mov word [0xdfe130], ax
jmp 0x443917
mov dword [esp + 4], 0
mov dword [esp], 0x51520f
call fcn.004478c0
movzx edx, word [0xdfe134]
jmp 0x443917
mov eax, dword [esp + 0x2c]
test eax, eax
je 0x444040
mov eax, dword [esp + 0x370]
mov esi, 0x32
mov byte [esp + 0x58], 0
xor edi, edi
mov word [0xdfe132], si
movzx esi, word [0xdfe134]
mov dword [eax], 0xfffffffd
jmp 0x444280
cmp dword [esp + 0x20], 0xffffffff
je 0x444040
mov eax, dword [0x50356c]
call fcn.00443020
test al, al
je 0x444040
mov eax, dword [0x50356c]
mov ecx, dword [esp + 0x370]
mov edi, 1
movzx esi, word [0xdfe134]
mov dword [ecx], eax
jmp 0x444280
cmp byte [esp + 0x30], 0
je 0x444040
mov dword [esp + 4], 0xffffffff
mov dword [esp], str.Limit_spell_level__0_for_unlimited__
call fcn.00414be0
mov dword [0x116428c], eax
test eax, eax
js 0x4459a3
movzx edx, word [0xdfe134]
cmp eax, 0x63
jle 0x444779
mov dword [0x116428c], 0x63
mov byte [esp + 0x30], 0
jmp 0x443917
cmp byte [esp + 0x39], 0
je 0x444040
mov eax, dword [0x54c7e4]
movzx edi, byte [0xdfe12e]
mov dword [0x54c7e4], 0x5151e2
mov byte [0xdfe12e], 0x7e
mov dword [esp + 0x50], eax
mov eax, dword [0x54c7e0]
mov dword [0x54c7e0], 0x4413b0
mov dword [esp + 0x54], eax
movzx eax, word [0xdfe12c]
mov word [esp + 0x5a], ax
mov eax, dword [0xdfe128]
mov dword [0xdfe128], 0
mov dword [esp + 0x5c], eax
xor eax, eax
cmp word [0xdfe134], 0
mov word [0xdfe12c], ax
jne 0x445705
lea edx, [esp + 0x250]
mov dword [esp + 8], 0x4402
mov dword [esp], edx
mov dword [esp + 4], str.Use_which_bag_
call fcn.00443190
lea edx, [esp + 0x250]
test al, al
jne 0x445787
cmp dword [esp + 0x250], 0xfffffffe
je 0x4459eb
cmp byte [0x54b7e6], 0
je 0x444849
cmp byte [0xde8316], 0
jne 0x445a0d
mov eax, edi
mov byte [0xdfe12e], al
mov eax, dword [esp + 0x50]
mov dword [0x54c7e4], eax
mov eax, dword [esp + 0x54]
mov dword [0x54c7e0], eax
movzx eax, word [esp + 0x5a]
mov word [0xdfe12c], ax
mov eax, dword [esp + 0x5c]
mov dword [0xdfe128], eax
jmp 0x444659
cmp byte [esp + 0x38], 0
je 0x443bb0
mov eax, dword [esp + 0x28]
mov dword [esp + 4], eax
lea eax, [esp + 0x250]
mov dword [esp], eax
call dword [0x54c7e0]
test al, al
je 0x443bb0
jmp 0x44460e
cmp byte [esp + 0x3b], 0
je 0x44552c
cmp byte [esp + 0x3a], 0
je 0x44552c
movzx esi, word [0xdfe134]
test si, si
jne 0x44576c
xor eax, eax
cmp word [0xdfe130], 0
sete al
mov word [0xdfe130], ax
jmp 0x443bc9
mov eax, dword [esp + 0x2c]
test eax, eax
jne 0x4446cf
jmp 0x443bb0
cmp byte [esp + 0x39], 0
je 0x443bb0
mov eax, dword [0x54c7e4]
movzx ebx, byte [0xdfe12e]
mov dword [0x54c7e4], 0x5151e2
mov byte [0xdfe12e], 0x7e
mov dword [esp + 0x4c], eax
mov eax, dword [0x54c7e0]
mov dword [0x54c7e0], 0x4413b0
mov dword [esp + 0x50], eax
movzx eax, word [0xdfe12c]
mov word [esp + 0x48], ax
mov eax, dword [0xdfe128]
mov dword [0xdfe128], 0
mov dword [esp + 0x54], eax
xor eax, eax
cmp word [0xdfe134], 0
mov word [0xdfe12c], ax
jne 0x445762
lea esi, [esp + 0x250]
mov dword [esp + 8], 0x4402
mov dword [esp + 4], str.Use_which_bag_
mov dword [esp], esi
call fcn.00443190
test al, al
jne 0x4457ff
cmp dword [esp + 0x250], 0xfffffffe
je 0x4459fc
cmp byte [0x54b7e6], 0
je 0x4449b9
cmp byte [0xde8316], 0
jne 0x445a17
mov eax, dword [esp + 0x4c]
mov byte [0xdfe12e], bl
movzx esi, word [0xdfe134]
mov dword [0x54c7e4], eax
mov eax, dword [esp + 0x50]
mov dword [0x54c7e0], eax
movzx eax, word [esp + 0x48]
mov word [0xdfe12c], ax
mov eax, dword [esp + 0x54]
mov dword [0xdfe128], eax
jmp 0x443bc9
cmp dword [esp + 0x20], 0xffffffff
je 0x443bb0
mov eax, dword [0x50356c]
call fcn.00443020
test al, al
jne 0x444718
jmp 0x443bb0
cmp byte [esp + 0x30], 0
je 0x443bb0
mov dword [esp + 4], 0xffffffff
mov dword [esp], str.Limit_spell_level__0_for_unlimited__
call fcn.00414be0
mov dword [0x116428c], eax
test eax, eax
js 0x445988
movzx esi, word [0xdfe134]
cmp eax, 0x63
jle 0x444a55
mov dword [0x116428c], 0x63
mov byte [esp + 0x30], 0
jmp 0x443bc9
mov dword [esp + 4], 0
mov dword [esp], 0x51520f
call fcn.004478c0
cmp byte [0x54c7e8], 0
movzx esi, word [0xdfe134]
je 0x443bd6
mov ebx, 0x32
mov byte [esp + 0x58], 0
xor edi, edi
mov word [0xdfe132], bx
jmp 0x444280
lea eax, [ebx + 0xf579a0]
mov dword [esp], eax
call fcn.00441310
test al, al
jne 0x4437d7
lea esi, [esi]
lea esi, [esi]
sub ebp, 1
sub ebx, 0x160
cmp ebp, esi
jne 0x4437a0
jmp 0x4437d7
lea eax, [ebx + 0xf579a0]
mov dword [esp], eax
call fcn.00441310
test al, al
jne 0x4435c6
lea esi, [esi]
lea esi, [esi]
sub ebp, 1
sub ebx, 0x160
cmp ebp, esi
jne 0x44358f
mov dword [esp + 0x1c], ebp
mov dword [esp + 0x3c], 1
mov byte [esp + 0x2c], 0
mov byte [esp + 0x59], 0
mov byte [esp + 0x3b], 1
jmp 0x4435e0
lea eax, [ebx + 0xf579a0]
mov dword [esp], eax
call fcn.00441310
test al, al
jne 0x443582
nop
add edi, 1
add ebx, 0x160
cmp edi, 0x17
je 0x44541e
mov eax, dword [0x503568]
jmp 0x443550
test si, si
je 0x444498
call fcn.0047ec20
jmp 0x443bff
cmp byte [esp + 0x38], 0
je 0x444da0
cmp dword [esp + 0x34], 3
jg 0x443cd8
lea eax, [esp + 0x110]
mov dword [esp], eax
call sub.msvcrt.dll_strlen
lea ecx, [esp + 0x110]
add eax, ecx
cmp byte [esp + 0x30], 0
mov dword [eax], 0x74204020
mov dword [eax + 4], 0x616e206f
mov dword [eax + 8], 0x2c656d
jne 0x444dc0
cmp byte [esp + 0x39], 0
je 0x444e02
cmp byte [esp + 0x18], 0
je 0x445690
lea eax, [esp + 0x110]
mov dword [esp], eax
call sub.msvcrt.dll_strlen
lea edx, [esp + 0x110]
mov ebx, dword [esp + 0x2c]
add eax, edx
mov dword [eax], 0x66202120
mov dword [eax + 4], 0x6220726f
mov dword [eax + 8], 0x2c6761
test ebx, ebx
jne 0x444e0e
cmp dword [esp + 0x20], 0xffffffff
je 0x443d86
lea eax, [esp + 0x110]
mov dword [esp], eax
call sub.msvcrt.dll_strlen
lea ecx, [esp + 0x110]
add eax, ecx
mov dword [eax + 8], 0x73657765
mov dword [eax], 0x66202b20
mov dword [eax + 4], 0x6e20726f
mov dword [eax + 0xb], 0x2c7473
jmp 0x443d86
cmp byte [esp + 0x38], 0
je 0x445118
cmp dword [esp + 0x34], 3
jle 0x443a10
lea eax, [esp + 0x110]
mov dword [esp], eax
call sub.msvcrt.dll_strlen
lea ecx, [esp + 0x110]
add eax, ecx
cmp byte [esp + 0x30], 0
mov dword [eax], 0x6e204020
mov dword [eax + 4], 0x2c656d61
mov byte [eax + 8], 0
jne 0x445028
cmp byte [esp + 0x39], 0
je 0x444ced
cmp byte [esp + 0x18], 0
je 0x444ced
lea eax, [esp + 0x110]
mov dword [esp], eax
call sub.msvcrt.dll_strlen
lea edx, [esp + 0x110]
add eax, edx
mov dword [eax], 0x62202120
mov dword [eax + 4], 0x2c6761
mov eax, dword [esp + 0x2c]
test eax, eax
je 0x444d21
lea eax, [esp + 0x110]
mov dword [esp], eax
call sub.msvcrt.dll_strlen
lea ecx, [esp + 0x110]
add eax, ecx
mov dword [eax + 4], 0x63746977
mov dword [eax], 0x73202d20
mov dword [eax + 7], 0x2c6863
cmp dword [esp + 0x20], 0xffffffff
je 0x443b00
lea eax, [esp + 0x110]
mov dword [esp], eax
call sub.msvcrt.dll_strlen
lea ecx, [esp + 0x110]
add eax, ecx
mov dword [eax + 4], 0x73657765
mov dword [eax], 0x6e202b20
mov dword [eax + 7], 0x2c7473
jmp 0x443b00
lea eax, [esp + 0x110]
lea edx, [eax + edi]
mov dword [edx], 0x43534520
mov byte [edx + 4], 0
jmp 0x443b33
lea eax, [esp + 0x110]
lea edx, [eax + ebx]
mov dword [edx], 0x43534520
mov byte [edx + 4], 0
jmp 0x443db9
cmp byte [esp + 0x30], 0
je 0x4453cd
cmp dword [esp + 0x34], 3
jg 0x444fd8
lea esi, [esi]
lea esi, [esi]
lea eax, [esp + 0x110]
mov dword [esp], eax
call sub.msvcrt.dll_strlen
lea ecx, [esp + 0x110]
add eax, ecx
cmp byte [esp + 0x39], 0
mov dword [eax], 0x74202320
mov dword [eax + 4], 0x696c206f
mov dword [eax + 8], 0x2c74696d
mov byte [eax + 0xc], 0
je 0x444e02
cmp byte [esp + 0x18], 0
jne 0x444beb
mov ebx, dword [esp + 0x2c]
test ebx, ebx
je 0x444c23
lea eax, [esp + 0x110]
mov dword [esp], eax
call sub.msvcrt.dll_strlen
lea ecx, [esp + 0x110]
mov edx, 0x2c
add eax, ecx
cmp dword [esp + 0x20], 0xffffffff
mov dword [eax], 0x74202d20
mov dword [eax + 4], 0x7773206f
mov dword [eax + 8], 0x68637469
mov word [eax + 0xc], dx
jne 0x444c2e
jmp 0x443d86
mov eax, dword [esp + 0x370]
mov edx, 0xffffffff
mov byte [esp + 0x58], bl
mov word [0x503542], dx
mov dword [eax], ecx
mov eax, 0xffffffff
mov word [0x503544], ax
mov byte [0xdfd640], 0
call fcn.0046f230
mov eax, dword [0x503558]
xor ecx, ecx
mov byte [0xdfe12e], 0
mov word [0xdfe12c], cx
or dword [eax + 0x70408], 3
mov dword [0xdfe128], 0
call fcn.0048a8b0
call fcn.004238b0
jmp 0x4442ed
cmp dword [esp + 0x34], 3
jg 0x445028
lea esi, [esi]
nop
lea eax, [esp + 0x110]
mov dword [esp], eax
call sub.msvcrt.dll_strlen
lea ecx, [esp + 0x110]
add eax, ecx
cmp byte [esp + 0x39], 0
mov dword [eax], 0x74202320
mov dword [eax + 4], 0x696c206f
mov dword [eax + 8], 0x2c74696d
mov byte [eax + 0xc], 0
jne 0x443a52
mov edi, dword [esp + 0x2c]
test edi, edi
jne 0x443a91
jmp 0x443ac6
cmp byte [esp + 0x3a], 0
je 0x444c70
cmp dword [esp + 0x34], 3
jle 0x445307
lea eax, [esp + 0x110]
mov dword [esp], eax
call sub.msvcrt.dll_strlen
lea edx, [esp + 0x110]
add eax, edx
mov edx, 0x2c
mov word [eax + 8], dx
cmp byte [esp + 0x38], 0
mov dword [eax], 0x45202f20
mov dword [eax + 4], 0x70697571
jne 0x444c86
cmp byte [esp + 0x30], 0
jne 0x445028
cmp byte [esp + 0x18], 0
je 0x444ced
cmp byte [esp + 0x39], 0
je 0x444ced
jmp 0x444cc8
lea eax, [esp + 0x110]
mov dword [esp], eax
call sub.msvcrt.dll_strlen
lea ecx, [esp + 0x110]
add eax, ecx
mov ecx, 0x2c
cmp byte [esp + 0x38], 0
mov dword [eax], 0x45202f20
mov dword [eax + 4], 0x70697571
mov word [eax + 8], cx
jne 0x443cd8
cmp byte [esp + 0x30], 0
je 0x445675
lea esi, [esi]
lea eax, [esp + 0x110]
mov dword [esp], eax
call sub.msvcrt.dll_strlen
lea ecx, [esp + 0x110]
mov edx, 0x2c
add eax, ecx
cmp byte [esp + 0x39], 0
mov dword [eax], 0x6c202320
mov dword [eax + 4], 0x74696d69
mov word [eax + 8], dx
je 0x444540
cmp byte [esp + 0x18], 0
jne 0x443d22
jmp 0x444540
lea eax, [esp + 0x110]
mov edi, 0x2c
mov dword [esp], eax
call sub.msvcrt.dll_strlen
lea ecx, [esp + 0x110]
add eax, ecx
cmp byte [esp + 0x39], 0
mov dword [eax], 0x6c202320
mov dword [eax + 4], 0x74696d69
mov word [eax + 8], di
je 0x444ced
jmp 0x444cc1
cmp byte [esp + 0x3a], 0
je 0x444b88
cmp dword [esp + 0x34], 3
jg 0x444f8d
lea eax, [esp + 0x110]
mov ebx, 0x2c
mov dword [esp], eax
call sub.msvcrt.dll_strlen
lea edx, [esp + 0x110]
add eax, edx
cmp byte [esp + 0x38], 0
mov dword [eax], 0x66202f20
mov dword [eax + 4], 0x4520726f
mov dword [eax + 8], 0x70697571
mov word [eax + 0xc], bx
jne 0x444b9e
cmp byte [esp + 0x30], 0
jne 0x444dc0
cmp byte [esp + 0x18], 0
je 0x4453df
cmp byte [esp + 0x39], 0
je 0x4453df
jmp 0x444beb
call fcn.0040e9f0
jmp 0x443bc2
call fcn.0040e990
movzx edx, word [0xdfe134]
jmp 0x443917
cmp byte [esp + 0x30], 0
jne 0x444eb8
cmp byte [esp + 0x18], 0
je 0x445135
cmp byte [esp + 0x39], 0
jne 0x445916
mov eax, dword [esp + 0x2c]
test eax, eax
je 0x44565a
cmp dword [esp + 0x34], 3
jle 0x443a91
jmp 0x444cf5
lea eax, [esp + 0x110]
mov dword [esp], eax
call sub.msvcrt.dll_strlen
lea ecx, [esp + 0x110]
add eax, ecx
mov dword [eax + 4], 0x6573206f
mov dword [eax], 0x74202a20
mov dword [eax + 7], 0x2c6565
jmp 0x4444cd
lea eax, [esp + 0x110]
mov dword [esp], eax
call sub.msvcrt.dll_strlen
lea ecx, [esp + 0x110]
add eax, ecx
mov dword [eax + 4], 0x6573206f
mov dword [eax], 0x74202a20
mov dword [eax + 7], 0x2c6565
jmp 0x4440c1
lea eax, [esi + 0x49]
mov dword [esp + 4], str.__c__c
movzx eax, ax
mov dword [esp], ebx
mov dword [esp + 0xc], eax
mov eax, dword [esp + 0x24]
add eax, 0x49
mov dword [esp + 8], eax
call fcn.004412c0
lea eax, [esp + 0x110]
mov dword [esp + 4], ebx
mov dword [esp], eax
call sub.msvcrt.dll_strcat
jmp 0x4440b3
lea eax, [ebp + 0x49]
mov dword [esp + 4], str.__c__c
movzx eax, ax
mov dword [esp], esi
mov dword [esp + 0xc], eax
mov eax, dword [esp + 0x24]
add eax, 0x49
mov dword [esp + 8], eax
call fcn.004412c0
lea eax, [esp + 0x110]
mov dword [esp + 4], esi
mov dword [esp], eax
call sub.msvcrt.dll_strcat
jmp 0x4444bf
mov edx, 0x2c
mov dword [eax], 0x66202f20
mov dword [eax + 4], 0x4920726f
mov dword [eax + 8], 0x6e65766e
mov word [eax + 0xc], dx
cmp byte [esp + 0x38], 0
jne 0x444b9e
cmp byte [esp + 0x30], 0
jne 0x444dc0
cmp byte [esp + 0x18], 0
je 0x444e02
cmp byte [esp + 0x39], 0
je 0x444e02
jmp 0x444beb
call fcn.00409b30
jmp 0x4442a0
call fcn.0047ded0
jmp 0x443bff
call fcn.00409a70
movzx esi, word [0xdfe134]
jmp 0x443865
mov edx, 0x2c
mov dword [eax], 0x49202f20
mov word [eax + 8], dx
cmp byte [esp + 0x38], 0
mov dword [eax + 4], 0x6e65766e
jne 0x444c86
jmp 0x444f67
cmp byte [esp + 0x3a], 0
mov dword [eax + 4], 0x6573206f
mov dword [eax], 0x74202a20
mov dword [eax + 7], 0x2c6565
jne 0x445086
jmp 0x445262
lea eax, [esp + 0x110]
mov dword [esp], eax
call sub.msvcrt.dll_strlen
lea ecx, [esp + 0x110]
add eax, ecx
mov ecx, 0x2c
mov word [eax + 0xc], cx
cmp byte [esp + 0x38], 0
mov dword [eax], 0x66202f20
mov dword [eax + 4], 0x4520726f
mov dword [eax + 8], 0x70697571
jne 0x443a10
jmp 0x444117
cmp byte [esp + 0x3a], 0
mov dword [eax], 0x73202a20
mov dword [eax + 4], 0x2c6565
jne 0x444f2e
cmp byte [esp + 0x38], 0
jne 0x444c86
jmp 0x444f67
mov ecx, dword [esp + 0x378]
mov dword [esp + 0x28], ecx
jmp 0x443214
mov dword [esp], eax
call fcn.0047e590
jmp 0x44393d
mov byte [esp + 0x18], 1
mov byte [esp + 0x38], 1
jmp 0x443538
mov ecx, dword [esp + 0x250]
mov edx, dword [esp + 0x24]
cmp ecx, 0xffffffff
jne 0x444e53
mov byte [esp + 0x18], bl
jmp 0x4432e3
mov eax, 1
mov word [0xdfe130], ax
jmp 0x44382c
cmp byte [esp + 0x18], 0
je 0x4453df
cmp byte [esp + 0x39], 0
jne 0x445906
mov ecx, dword [esp + 0x2c]
test ecx, ecx
je 0x445403
cmp dword [esp + 0x34], 3
jle 0x444e0e
jmp 0x44454c
mov eax, dword [esp + 0x2c]
test eax, eax
jne 0x44454c
cmp dword [esp + 0x20], 0xffffffff
je 0x443d86
cmp dword [esp + 0x34], 3
jle 0x444c2e
jmp 0x443d5a
mov dword [esp + 0x3c], 1
mov byte [esp + 0x2c], 0
mov byte [esp + 0x59], 0
mov byte [esp + 0x3b], 1
mov dword [esp + 0x1c], 0x16
jmp 0x4435e0
mov edx, dword [esp + 0x28]
mov eax, dword [esp + 0x370]
xor ecx, ecx
mov word [0xdfe134], cx
and edx, 0x400
cmp byte [0x54b7e6], 0
mov dword [eax], 0xfffffffe
je 0x44560c
cmp byte [esp + 0x38], 1
mov byte [0xdfd640], 0
sbb eax, eax
and eax, 2
add eax, 1
mov dword [0x54b7e0], eax
test edx, edx
je 0x44561b
cmp byte [0xde8316], 0
jne 0x445876
call fcn.0046f230
xor eax, eax
xor edx, edx
mov byte [0xdfe12e], 0
mov word [0xdfe134], ax
mov eax, dword [0x503558]
mov word [0xdfe12c], dx
or dword [eax + 0x70408], 1
mov dword [0xdfe128], 0
call fcn.0048a8b0
jmp 0x4445b8
mov dword [esp], 0xf5a9c0
call fcn.00441310
test al, al
je 0x44346a
mov dword [esp + 0x24], 0x23
jmp 0x443788
call fcn.00409b30
xor eax, eax
mov word [0xdfe134], ax
call fcn.0046f230
movzx esi, word [0xdfe134]
jmp 0x443bc9
mov eax, dword [esp + 0x24]
mov edx, 0xffffffff
cmp esi, eax
cmove edx, esi
jmp 0x444227
cmp byte [0xde8369], 0
jne 0x443bbd
call fcn.0040e9f0
movzx esi, word [0xdfe134]
jmp 0x443bc9
mov ecx, 0xffffffff
test eax, eax
je 0x444390
mov eax, esi
lea ecx, [edx - 0x49]
movsx eax, al
sub eax, 0x61
cmp eax, 0xd
ja 0x445a21
imul eax, ecx, 0x160
cmp byte [eax + 0xf579b6], 0
mov eax, 0xffffffff
cmove ecx, eax
jmp 0x444390
mov eax, dword [esp + 0x24]
mov esi, 0xffffffff
cmp ebp, eax
cmove esi, ebp
jmp 0x443b9a
movzx edx, byte [esp + 0x5a]
test eax, eax
je 0x4456ab
movsx eax, dl
sub ecx, 0x49
sub eax, 0x61
cmp eax, 0xd
ja 0x4456ab
imul eax, ecx, 0x160
cmp byte [eax + 0xf579b6], 0
mov eax, 0xffffffff
cmove ecx, eax
jmp 0x444023
call fcn.00409a70
mov eax, 1
mov edx, 1
mov word [0xdfe134], ax
jmp 0x443917
mov dword [esp], 0xf5ab20
call fcn.00441310
test al, al
je 0x44349e
mov dword [esp + 0x24], 0x24
jmp 0x443788
mov byte [0xdfd640], 0
test edx, edx
jne 0x44549d
mov dword [esp], str.You_do_not_have_an_eligible_item.
call fcn.00413da0
cmp byte [0x54b7e6], 0
jne 0x445490
jmp 0x44549d
mov dword [esp], 0xf5ac80
call fcn.00441310
test al, al
je 0x4434d1
mov dword [esp + 0x24], 0x25
jmp 0x443788
cmp dword [esp + 0x20], 0xffffffff
je 0x443b00
cmp dword [esp + 0x34], 3
jle 0x443acd
jmp 0x444d2c
cmp byte [esp + 0x18], 0
je 0x4453df
cmp byte [esp + 0x39], 0
je 0x4453df
jmp 0x443d22
mov eax, dword [esp + 0x2c]
test eax, eax
jne 0x444e0e
jmp 0x445403
call fcn.0040e990
jmp 0x444659
mov ecx, 0xffffffff
jmp 0x444023
movzx eax, byte [esp + 0x3a]
mov dword [esp + 0x3c], 0
mov byte [esp + 0x59], 1
mov byte [esp + 0x2c], al
mov byte [esp + 0x3b], 0
mov dword [esp + 0x1c], 0xffffffff
jmp 0x4435e0
cmp byte [edx + 0xf579b6], 0
cmove ecx, eax
jmp 0x444390
cmp esi, 0x63
jle 0x4459d3
cmp byte [esp + 0x3b], 0
jne 0x443b9e
jmp 0x443bb0
call fcn.00409b30
jmp 0x4447f7
cmp ecx, 0x63
jg 0x4459c3
movzx eax, byte [esp + 0x3a]
movzx edx, byte [esp + 0x59]
xor eax, 1
cmp ecx, 0x17
cmovle eax, edx
test al, al
je 0x4441c4
jmp 0x444040
call fcn.00409b30
call fcn.0046f230
call fcn.00409a70
movzx edx, word [0xdfe134]
jmp 0x44468b
cmp byte [edx + 0xf579b6], 0
cmove ecx, eax
jmp 0x444023
call fcn.00409b30
jmp 0x44496e
call fcn.00409b30
call fcn.0046f230
call fcn.00409a70
movzx esi, word [0xdfe134]
jmp 0x4448d1
mov eax, dword [esp + 0x250]
mov dword [esp], edx
mov dword [0x503568], eax
mov eax, edi
mov byte [0xdfe12e], al
mov eax, dword [esp + 0x50]
mov dword [0x54c7e4], eax
mov eax, dword [esp + 0x54]
mov dword [0x54c7e0], eax
movzx eax, word [esp + 0x5a]
mov word [0xdfe12c], ax
mov eax, dword [esp + 0x5c]
mov dword [0xdfe128], eax
mov eax, dword [esp + 0x28]
and ah, 0xbb
or ah, 0x40
mov dword [esp + 8], eax
mov eax, dword [esp + 0x374]
mov dword [esp + 4], eax
call fcn.00443190
test al, al
jne 0x445962
mov dword [0x503568], 0xffffffff
movzx edx, word [0xdfe134]
jmp 0x443917
mov eax, dword [esp + 0x250]
mov dword [esp], esi
mov byte [0xdfe12e], bl
mov dword [0x503568], eax
mov eax, dword [esp + 0x4c]
mov dword [0x54c7e4], eax
mov eax, dword [esp + 0x50]
mov dword [0x54c7e0], eax
movzx eax, word [esp + 0x48]
mov word [0xdfe12c], ax
mov eax, dword [esp + 0x54]
mov dword [0xdfe128], eax
mov eax, dword [esp + 0x28]
and ah, 0xbb
or ah, 0x40
mov dword [esp + 8], eax
mov eax, dword [esp + 0x374]
mov dword [esp + 4], eax
call fcn.00443190
test al, al
jne 0x445962
mov dword [0x503568], 0xffffffff
movzx esi, word [0xdfe134]
jmp 0x443bc9
call fcn.0040c6e0
jmp 0x44549d
mov edx, dword [0x503568]
lea eax, [ecx + ecx*4]
mov dword [esp + 0x18], ecx
shl eax, 5
cmp edx, 0xffffffff
je 0x4459b9
imul edx, edx, 0xf00
lea eax, [eax + edx + 0xf0e0a0]
lea ebx, [esp + 0x1b0]
mov dword [esp + 4], eax
mov dword [esp], ebx
call sub.msvcrt.dll_strcpy
mov dword [esp + 0xc], ebx
lea ebx, [esp + 0x250]
mov dword [esp + 8], 0x51521e
mov dword [esp + 4], str._s__s_
mov dword [esp], ebx
call fcn.004412c0
mov dword [esp + 4], 0
mov dword [esp], ebx
call fcn.00412750
mov ecx, dword [esp + 0x18]
test al, al
mov byte [esp + 0x58], al
jne 0x445930
movzx esi, word [0xdfe134]
xor edi, edi
jmp 0x444280
cmp dword [esp + 0x34], 3
jg 0x443d22
jmp 0x444beb
cmp dword [esp + 0x34], 3
jg 0x444cc8
jmp 0x443a5d
call fcn.0040c6e0
jmp 0x4445b8
mov eax, dword [esp + 0x370]
mov dword [eax], ecx
cmp dword [0x503568], 0xffffffff
je 0x44594a
mov edi, dword [esp + 0x44]
add edi, ecx
mov dword [eax], edi
mov byte [0x54c7e9], 1
movzx esi, word [0xdfe134]
mov edi, 1
jmp 0x444280
mov eax, dword [esp + 0x250]
mov ecx, dword [esp + 0x370]
movzx esi, word [0xdfe134]
mov dword [ecx], eax
mov dword [0x503568], 0xffffffff
jmp 0x44463d
mov byte [esp + 0x30], 0
movzx esi, word [0xdfe134]
mov dword [0x116428c], 0
jmp 0x443bc9
mov dword [0x116428c], 0
movzx edx, word [0xdfe134]
jmp 0x444779
add eax, 0xf561e0
jmp 0x4458a6
cmp byte [esp + 0x3b], 0
jne 0x4441c4
jmp 0x444040
movzx eax, byte [esp + 0x3a]
movzx ecx, byte [esp + 0x59]
xor eax, 1
cmp esi, 0x17
cmovle eax, ecx
jmp 0x444460
mov dword [esp], str.You_have_no_bags.
call fcn.00413da0
jmp 0x444833
mov dword [esp], str.You_have_no_bags.
call fcn.00413da0
jmp 0x4449a3
call fcn.0040c6e0
jmp 0x444849
call fcn.0040c6e0
jmp 0x4449b9
mov ecx, 0xffffffff
jmp 0x444390
movzx eax, byte [esp + 0x18]
mov byte [esp + 0x39], al
jmp 0x4432bf