Function at 0x4afc40
Capabilities:
Parse credit card information

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x570
mov eax, dword [0x57c870]
xor eax, ebp
mov dword [ebp - 8], eax
push esi
mov eax, dword [0x5fda70]
mov dword [ebp - 4], eax
mov ecx, dword [0x5fda4c]
mov dword [ebp - 0x230], ecx
mov dword [ebp - 0x128], 1
mov dword [ebp - 0x114], 1
mov dword [ebp - 0x10c], 0
mov dword [ebp - 0x454], 0
mov dword [ebp - 0x120], 0xffffffff
mov dword [ebp - 0x450], 0xffffffff
mov dl, byte [0x5fd6de]
mov byte [ebp - 0x338], dl
push 0xfe
push 0
lea eax, [ebp - 0x337]
push eax
call fcn.005323e0
add esp, 0xc
xor ecx, ecx
mov word [ebp - 0x110], cx
mov dword [0x5fd734], 0
mov dword [0x5fd730], 0
mov edx, dword [0x5fdb08]
push edx
call fcn.00460c80
add esp, 4
mov dword [ebp - 0x55c], eax
lea eax, [ebp - 0x22c]
push eax
lea ecx, [ebp - 0x11c]
push ecx
mov edx, dword [0x5fdb48]
mov eax, dword [edx*4 + 0x65bea0]
add eax, 2
push eax
call fcn.00424d30
add esp, 0xc
mov ecx, dword [0x5fdb48]
mov edx, dword [ecx*4 + 0x65bea0]
movsx eax, byte [edx + 1]
cmp eax, 0x4c
jne 0x4afdab
push 0
mov ecx, dword [ebp - 0x22c]
push ecx
mov edx, dword [ebp - 0x11c]
push edx
push 1
mov eax, dword [0x5fdb08]
push eax
push 0x1102600
call fcn.0045b4f0
add esp, 0x18
push 2
mov ecx, dword [ebp - 0x22c]
push ecx
mov edx, dword [ebp - 0x11c]
push edx
push 1
mov eax, dword [0x5fdb08]
push eax
push 0x1102600
call fcn.0045b4f0
add esp, 0x18
mov ecx, dword [0x5fdb08]
push ecx
push 0x1102600
mov edx, dword [0x5c4c28]
imul edx, edx, 0x127c
add edx, 0x11a6ec0
push edx
call fcn.0045c780
add esp, 0xc
jmp 0x4b1d86
mov eax, dword [0x5fdb48]
mov ecx, dword [eax*4 + 0x65bea0]
movsx edx, byte [ecx + 1]
cmp edx, 0x55
jne 0x4afe37
push 0
mov eax, dword [ebp - 0x22c]
push eax
mov ecx, dword [ebp - 0x11c]
push ecx
push 0
mov edx, dword [0x5fdb08]
push edx
push 0x1102600
call fcn.0045b4f0
add esp, 0x18
push 2
mov eax, dword [ebp - 0x22c]
push eax
mov ecx, dword [ebp - 0x11c]
push ecx
push 1
mov edx, dword [0x5fdb08]
push edx
push 0x1102600
call fcn.0045b4f0
add esp, 0x18
mov eax, dword [0x5fdb08]
push eax
push 0x1102600
mov ecx, dword [0x5c4c28]
imul ecx, ecx, 0x127c
add ecx, 0x11a6ec0
push ecx
call fcn.0045c780
add esp, 0xc
jmp 0x4b1d86
mov edx, dword [0x5fdb48]
mov eax, dword [edx*4 + 0x65bea0]
movsx ecx, byte [eax + 1]
cmp ecx, 0x46
jne 0x4afeb6
mov edx, dword [ebp - 0x11c]
mov dword [0x5fda70], edx
mov eax, dword [ebp - 0x22c]
mov dword [0x5fda4c], eax
push 3
call fcn.004b7af0
add esp, 4
push 2
call fcn.004f3670
add esp, 4
mov dword [0x572238], 1
push 1
call fcn.004ccb80
add esp, 4
call fcn.004f4570
push 0
push 0
call fcn.004caf40
add esp, 8
mov dword [0x572238], 0
push 1
call fcn.004f3670
add esp, 4
jmp 0x4b1d86
mov dword [0x600c50], 0
mov dword [0x600c4c], 0
mov ecx, dword [0x5fdb48]
mov edx, dword [ecx*4 + 0x65bea0]
movsx eax, byte [edx + 1]
cmp eax, 0x4e
je 0x4afefd
cmp dword [0x5fd9cc], 1
je 0x4afefd
mov dword [0x5fd9cc], 0
mov dword [0x572230], 0xffffffff
push 0x5726ec
push 0x658fc0
call fcn.00532580
add esp, 8
push 0x5726fc
push 0x65bda0
call fcn.00532580
add esp, 8
push 0x57270c
push 0x7132a0
call fcn.00532580
add esp, 8
mov ecx, dword [0x5fdb48]
mov edx, dword [ecx*4 + 0x65bea0]
movsx eax, byte [edx + 1]
cmp eax, 0x4e
jne 0x4aff96
mov ecx, dword [0x5fdb48]
mov edx, dword [ecx*4 + 0x65bea0]
push edx
call fcn.00532e80
add esp, 4
cmp eax, 9
jb 0x4aff96
push 3
push 0x57271c
mov eax, dword [0x5fdb48]
mov ecx, dword [eax*4 + 0x65bea0]
add ecx, 6
push ecx
call fcn.00532db5
add esp, 0xc
test eax, eax
jne 0x4aff96
mov dword [ebp - 0x10c], 1
jmp 0x4b120a
cmp dword [ebp - 0x11c], 0
je 0x4b064d
cmp dword [ebp - 0x22c], 0
je 0x4b064d
mov edx, dword [0x5fdb08]
push edx
call fcn.0042dba0
add esp, 4
test eax, eax
jne 0x4b064d
cmp dword [0x5fdb08], 0xf
je 0x4b064d
mov eax, dword [0x5fdb08]
push eax
call fcn.0042db70
add esp, 4
test eax, eax
jne 0x4b064d
cmp dword [0x5fdb08], 0x26
je 0x4b064d
cmp dword [0x5fdb08], 0x27
je 0x4b064d
cmp dword [0x5fdb08], 0x3d
je 0x4b064d
movsx ecx, byte [0x5f46e0]
test ecx, ecx
jne 0x4b0021
call fcn.00441c50
mov edx, dword [ebp - 0x22c]
push edx
mov eax, dword [ebp - 0x11c]
push eax
lea ecx, [ebp - 0x228]
push ecx
call fcn.00433cb0
add esp, 0xc
mov edx, dword [ebp - 0x55c]
imul edx, edx, 0x1564
mov eax, dword [ebp - 0x11c]
imul eax, eax, 0x94
lea ecx, [edx + eax + 0x667080]
mov edx, dword [ebp - 0x22c]
mov eax, dword [ecx + edx*4]
movsx ecx, byte [eax + 0xb]
sub ecx, 0x30
mov dword [ebp - 0x124], ecx
mov edx, dword [0x5fdb08]
imul edx, edx, 0x55
mov eax, dword [ebp - 0x124]
movsx ecx, byte [edx + eax + 0xd86f46]
cmp ecx, 0x50
je 0x4b010c
push 0
mov edx, dword [ebp - 0x22c]
push edx
mov eax, dword [ebp - 0x11c]
push eax
mov ecx, dword [0x5fdb08]
push ecx
push 0x1102600
call fcn.0045b180
add esp, 0x14
test eax, eax
je 0x4b00f6
push 2
push 0x572720
mov edx, dword [ebp - 0x55c]
imul edx, edx, 0x1564
mov eax, dword [ebp - 0x11c]
imul eax, eax, 0x94
lea ecx, [edx + eax + 0x667080]
mov edx, dword [ebp - 0x22c]
mov eax, dword [ecx + edx*4]
add eax, 4
push eax
call fcn.00532db5
add esp, 0xc
test eax, eax
jne 0x4b010c
lea ecx, [ebp - 0x338]
push ecx
lea edx, [ebp - 0x228]
push edx
call fcn.00454100
add esp, 8
cmp dword [0x5fdb08], 0xa
jne 0x4b0134
lea eax, [ebp - 0x338]
push eax
push str.9CQ_9CR_9CS_9CT_9CU
call fcn.00532680
add esp, 8
test eax, eax
je 0x4b0134
mov byte [ebp - 0x338], 0
mov ecx, dword [ebp - 0x22c]
push ecx
mov edx, dword [ebp - 0x11c]
push edx
mov eax, dword [0x5fdb08]
push eax
call fcn.0042dd90
add esp, 0xc
cmp eax, 1
jne 0x4b02d8
mov ecx, dword [ebp - 0x22c]
push ecx
mov edx, dword [ebp - 0x11c]
push edx
lea eax, [ebp - 0x228]
push eax
call fcn.00433cb0
add esp, 0xc
lea ecx, [ebp - 0x228]
push ecx
push 0x5f45e0
call fcn.00532680
add esp, 8
test eax, eax
je 0x4b019f
mov edx, 4
mov word [ebp - 0x110], dx
jmp 0x4b02d3
movsx eax, byte [0x5f46e0]
test eax, eax
je 0x4b02d3
push 0x5f46e0
lea ecx, [ebp - 0x228]
push ecx
call fcn.005327a0
add esp, 8
test eax, eax
jne 0x4b026a
push 0xa
mov edx, dword [0x5c4c28]
imul edx, edx, 0x127c
add edx, 0x11a6ec0
push edx
call fcn.00460890
add esp, 8
cwde
cmp eax, 1
jne 0x4b026a
mov ecx, 3
mov word [ebp - 0x110], cx
mov edx, dword [ebp - 0x11c]
mov dword [ebp - 0x120], edx
mov eax, dword [ebp - 0x22c]
mov dword [ebp - 0x450], eax
push 0
mov ecx, dword [ebp - 0x22c]
push ecx
mov edx, dword [ebp - 0x11c]
push edx
mov eax, dword [0x5fdb08]
push eax
push 0x1102600
call fcn.0045b180
add esp, 0x14
mov dword [ebp - 0x560], eax
cmp dword [ebp - 0x560], 1
jne 0x4b0268
push 0
mov ecx, dword [ebp - 0x22c]
push ecx
mov edx, dword [ebp - 0x11c]
push edx
push 0
mov eax, dword [0x5fdb08]
push eax
push 0x1102600
call fcn.0045b4f0
add esp, 0x18
jmp 0x4b02d3
lea ecx, [ebp - 0x228]
push ecx
call fcn.004b41a0
add esp, 4
cmp eax, 1
jne 0x4b02d3
push 0x5f46e0
lea edx, [ebp - 0x228]
push edx
call fcn.005327a0
add esp, 8
test eax, eax
jne 0x4b02c7
push 0xa
mov eax, dword [0x5c4c28]
imul eax, eax, 0x127c
add eax, 0x11a6ec0
push eax
call fcn.00460890
add esp, 8
movsx ecx, ax
cmp ecx, 1
jne 0x4b02c7
mov edx, 3
mov word [ebp - 0x110], dx
jmp 0x4b02d3
mov eax, 2
mov word [ebp - 0x110], ax
jmp 0x4b064d
movsx ecx, byte [ebp - 0x338]
test ecx, ecx
je 0x4b064d
push 0xa
mov edx, dword [0x5c4c28]
imul edx, edx, 0x127c
add edx, 0x11a6ec0
push edx
call fcn.00460890
add esp, 8
cwde
cmp eax, 1
jne 0x4b064d
lea ecx, [ebp - 0x450]
push ecx
lea edx, [ebp - 0x120]
push edx
lea eax, [ebp - 0x338]
push eax
call fcn.00424d30
add esp, 0xc
push 0
mov ecx, dword [ebp - 0x450]
push ecx
mov edx, dword [ebp - 0x120]
push edx
mov eax, dword [0x5fdb08]
push eax
push 0x1102600
call fcn.0045b180
add esp, 0x14
mov dword [ebp - 0x44c], eax
push 2
mov ecx, dword [ebp - 0x450]
push ecx
mov edx, dword [ebp - 0x120]
push edx
mov eax, dword [0x5fdb08]
push eax
push 0x1102600
call fcn.0045b180
add esp, 0x14
mov dword [ebp - 0x560], eax
cmp dword [ebp - 0x44c], 1
jne 0x4b03a8
cmp dword [ebp - 0x560], 1
jne 0x4b03a8
mov dword [ebp - 0x120], 0xffffffff
mov dword [ebp - 0x450], 0xffffffff
jmp 0x4b064d
movsx ecx, byte [0x5f46e0]
test ecx, ecx
je 0x4b03e0
lea edx, [ebp - 0x338]
push edx
call fcn.004b41a0
add esp, 4
cmp eax, 1
jne 0x4b03e0
mov dword [ebp - 0x120], 0xffffffff
mov dword [ebp - 0x450], 0xffffffff
jmp 0x4b064d
cmp dword [ebp - 0x44c], 0
jne 0x4b0411
mov dword [ebp - 0x120], 0xffffffff
mov dword [ebp - 0x450], 0xffffffff
push str.Was_going_to_force_a_MT_1__but_it_was_unlocked.
push 1
call fcn.00436500
add esp, 8
jmp 0x4b064d
mov esi, dword [ebp - 0x55c]
imul esi, esi, 0x1c20
mov eax, dword [ebp - 0x22c]
sub eax, 1
push eax
mov ecx, dword [ebp - 0x11c]
sub ecx, 1
push ecx
mov edx, dword [0x5fdb08]
push edx
call fcn.00424280
add esp, 0xc
imul eax, eax, 0xc
cmp dword [esi + eax + 0xf8d300], 0
jne 0x4b062a
lea eax, [ebp - 0x338]
push eax
push 0x5f44e0
call fcn.00532680
add esp, 8
test eax, eax
jne 0x4b0605
lea ecx, [ebp - 0x338]
push ecx
push 0x5f45e0
call fcn.00532680
add esp, 8
test eax, eax
jne 0x4b0605
push 0
push 1
mov edx, dword [ebp - 0x450]
push edx
mov eax, dword [ebp - 0x120]
push eax
mov ecx, dword [0x5fdb08]
push ecx
lea edx, [ebp - 0x448]
push edx
call fcn.0042c120
add esp, 0x18
lea eax, [ebp - 0x448]
push eax
call fcn.004348f0
add esp, 4
lea ecx, [ebp - 0x108]
push ecx
push str.MSG_ToConfirmPL
push 0
call fcn.0046d1b0
add esp, 0xc
lea edx, [ebp - 0x448]
push edx
push 0x572778
push 0x57277c
lea eax, [ebp - 0x108]
push eax
push str._s:_s_s_s
lea ecx, [ebp - 0x228]
push ecx
call fcn.00532706
add esp, 0x18
push 0x5fd6df
push 0x57278c
push 0x57279c
lea edx, [ebp - 0x228]
push edx
call fcn.00422b80
add esp, 0x10
mov dword [ebp - 0x234], eax
cmp dword [ebp - 0x234], 1
jne 0x4b0560
xor eax, eax
mov word [ebp - 0x110], ax
mov dword [ebp - 0x120], 0xffffffff
mov dword [ebp - 0x450], 0xffffffff
mov dword [ebp - 0x128], 1
jmp 0x4b18b7
mov ecx, dword [ebp - 0x120]
mov dword [ebp - 0x11c], ecx
mov edx, dword [ebp - 0x450]
mov dword [ebp - 0x22c], edx
push 0x5f46e0
lea eax, [ebp - 0x338]
push eax
call fcn.005327a0
add esp, 8
test eax, eax
jne 0x4b059e
mov ecx, 3
mov word [ebp - 0x110], cx
jmp 0x4b05aa
mov edx, 1
mov word [ebp - 0x110], dx
push 0
mov eax, dword [ebp - 0x22c]
push eax
mov ecx, dword [ebp - 0x11c]
push ecx
mov edx, dword [0x5fdb08]
push edx
push 0x1102600
call fcn.0045b180
add esp, 0x14
mov dword [ebp - 0x560], eax
cmp dword [ebp - 0x560], 1
jne 0x4b0603
push 0
mov eax, dword [ebp - 0x22c]
push eax
mov ecx, dword [ebp - 0x11c]
push ecx
push 0
mov edx, dword [0x5fdb08]
push edx
push 0x1102600
call fcn.0045b4f0
add esp, 0x18
jmp 0x4b0628
mov dword [ebp - 0x120], 0xffffffff
mov dword [ebp - 0x450], 0xffffffff
push str.Was_going_to_force_a_MT_1__but_they_had_already_taken_it.
push 1
call fcn.00436500
add esp, 8
jmp 0x4b064d
mov dword [ebp - 0x120], 0xffffffff
mov dword [ebp - 0x450], 0xffffffff
push str.Was_going_to_force_a_MT_1__but_they_had_already_studied_within_that_unit.
push 1
call fcn.00436500
add esp, 8
mov eax, dword [0x5fdb48]
mov ecx, dword [eax*4 + 0x65bea0]
movsx edx, byte [ecx]
cmp edx, 0x4e
jne 0x4b06c2
mov eax, dword [0x5fdb48]
mov ecx, dword [eax*4 + 0x65bea0]
push ecx
call fcn.00532e80
add esp, 4
cmp eax, 0xc
jb 0x4b06c2
push 2
mov edx, dword [0x5fdb48]
mov eax, dword [edx*4 + 0x65bea0]
add eax, 0xa
push eax
mov ecx, dword [ebp - 0x55c]
imul ecx, ecx, 0x1564
mov edx, dword [ebp - 0x11c]
imul edx, edx, 0x94
lea eax, [ecx + edx + 0x667080]
mov ecx, dword [ebp - 0x22c]
mov edx, dword [eax + ecx*4]
add edx, 0x7d
push edx
call fcn.00532bd0
add esp, 0xc
mov eax, dword [ebp - 0x22c]
push eax
mov ecx, dword [ebp - 0x11c]
push ecx
call fcn.004b3b50
add esp, 8
cmp dword [ebp - 0x11c], 0
je 0x4b0bbe
cmp dword [ebp - 0x22c], 0
je 0x4b0bbe
mov edx, dword [0x5fdb48]
cmp edx, dword [0x5fd958]
jl 0x4b0711
mov eax, dword [0x5fdb48]
cmp eax, dword [0x5fd95c]
jge 0x4b0bbe
mov ecx, dword [0x5726dc]
cmp ecx, dword [ebp - 0x11c]
jne 0x4b07e2
mov edx, dword [0x5726e0]
cmp edx, dword [ebp - 0x22c]
jne 0x4b07e2
mov eax, dword [0x5726e4]
add eax, 1
mov dword [0x5726e4], eax
mov ecx, dword [0x5fdb48]
mov edx, dword [ecx*4 + 0x65bea0]
movsx eax, byte [edx + 1]
cmp eax, 0x4e
jne 0x4b07a4
mov ecx, dword [0x5726e8]
cmp ecx, dword [0x5fdb48]
je 0x4b07a4
push 3
mov edx, dword [0x5726e8]
mov eax, dword [edx*4 + 0x65bea0]
push eax
mov ecx, dword [0x5fdb48]
mov edx, dword [ecx*4 + 0x65bea0]
push edx
call fcn.00532db5
add esp, 0xc
test eax, eax
jne 0x4b07a4
mov dword [0x5726e4], 1
mov eax, dword [0x5fdb48]
mov dword [0x5726e8], eax
push 0x57283c
mov ecx, dword [ebp - 0x22c]
push ecx
mov edx, dword [ebp - 0x11c]
push edx
mov eax, dword [0x5fdb08]
push eax
call fcn.0042dc50
add esp, 0x10
cmp eax, 1
jne 0x4b07e0
mov dword [0x5726e4], 1
mov ecx, dword [0x5fdb48]
mov dword [0x5726e8], ecx
jmp 0x4b0825
mov edx, dword [ebp - 0x11c]
mov dword [0x5726dc], edx
mov eax, dword [ebp - 0x22c]
mov dword [0x5726e0], eax
mov dword [0x5726e4], 1
mov ecx, dword [0x5fdb48]
mov edx, dword [ecx*4 + 0x65bea0]
movsx eax, byte [edx + 1]
cmp eax, 0x4e
jne 0x4b0825
mov ecx, dword [0x5fdb48]
mov dword [0x5726e8], ecx
mov edx, dword [ebp - 0x55c]
imul edx, edx, 0x1564
mov eax, dword [ebp - 0x11c]
imul eax, eax, 0x94
lea ecx, [edx + eax + 0x667080]
mov edx, dword [ebp - 0x22c]
cmp dword [ecx + edx*4], 0
je 0x4b09d5
cmp dword [0x5726e4], 2
jg 0x4b09d5
cmp dword [0x5fdae0], 1
jne 0x4b09d5
push 0x572840
mov eax, dword [ebp - 0x22c]
push eax
mov ecx, dword [ebp - 0x11c]
push ecx
mov edx, dword [0x5fdb08]
push edx
call fcn.0042dc50
add esp, 0x10
test eax, eax
jne 0x4b09d5
push 2
push 0x572844
mov eax, dword [ebp - 0x55c]
imul eax, eax, 0x1564
mov ecx, dword [ebp - 0x11c]
imul ecx, ecx, 0x94
lea edx, [eax + ecx + 0x667080]
mov eax, dword [ebp - 0x22c]
mov ecx, dword [edx + eax*4]
add ecx, 4
push ecx
call fcn.00532db5
add esp, 0xc
test eax, eax
je 0x4b09d5
mov edx, dword [ebp - 0x22c]
sub edx, 1
push edx
mov eax, dword [ebp - 0x11c]
sub eax, 1
push eax
mov ecx, dword [0x5fdb08]
push ecx
call fcn.00424280
add esp, 0xc
mov dword [ebp - 0x564], eax
mov dword [ebp - 0x568], 0
mov edx, dword [ebp - 0x11c]
cmp edx, dword [0x5fda74]
jne 0x4b0952
mov eax, dword [ebp - 0x22c]
cmp eax, dword [0x5fda50]
jne 0x4b0952
push 1
push 0x65bdc0
mov ecx, dword [0x5c4c28]
imul ecx, ecx, 0x127c
add ecx, 0x11a6ec0
push ecx
call fcn.00445980
add esp, 0xc
mov dword [ebp - 0x568], eax
mov edx, dword [ebp - 0x55c]
imul edx, edx, 0x1c20
mov eax, dword [ebp - 0x564]
imul eax, eax, 0xc
cmp dword [edx + eax + 0xeb1760], 0x5a
jle 0x4b097b
mov dword [0x5726e4], 0x64
mov ecx, dword [ebp - 0x55c]
imul ecx, ecx, 0x1c20
mov edx, dword [ebp - 0x564]
imul edx, edx, 0xc
cmp dword [ecx + edx + 0xeb1764], 0xa
jle 0x4b09a4
mov dword [0x5726e4], 0x64
mov eax, dword [ebp - 0x55c]
imul eax, eax, 0x1c20
mov ecx, dword [ebp - 0x564]
imul ecx, ecx, 0xc
mov edx, dword [eax + ecx + 0xeb1768]
add edx, dword [ebp - 0x568]
cmp edx, 0x14
jl 0x4b09d5
mov dword [0x5726e4], 0x64
cmp dword [0x5726e4], 2
jle 0x4b0bbe
mov eax, dword [0x5fdb08]
push eax
call fcn.0042db70
add esp, 4
test eax, eax
jne 0x4b0bbe
mov ecx, dword [0x5fdb08]
push ecx
call fcn.0042dba0
add esp, 4
test eax, eax
jne 0x4b0bbe
cmp dword [0x5fdb08], 0x38
je 0x4b0bbe
cmp dword [0x5fdae0], 1
jne 0x4b0bbe
lea edx, [ebp - 0x558]
push edx
push str.MSG_EnoughForNow
push 0
call fcn.0046d1b0
add esp, 0xc
lea eax, [ebp - 0x448]
push eax
push str.MSG_TryAnotherLesson
push 0
call fcn.0046d1b0
add esp, 0xc
push 0x572874
lea ecx, [ebp - 0x558]
push ecx
call fcn.00532590
add esp, 8
push 0x572878
lea edx, [ebp - 0x558]
push edx
call fcn.00532590
add esp, 8
lea eax, [ebp - 0x448]
push eax
lea ecx, [ebp - 0x558]
push ecx
call fcn.00532590
add esp, 8
cmp dword [0x5726e4], 0x64
jne 0x4b0adc
lea edx, [ebp - 0x448]
push edx
push str.MSG_StudyLessonOnDifferentDay
push 0
call fcn.0046d1b0
add esp, 0xc
push 0x57289c
lea eax, [ebp - 0x558]
push eax
call fcn.00532590
add esp, 8
lea ecx, [ebp - 0x448]
push ecx
lea edx, [ebp - 0x558]
push edx
call fcn.00532590
add esp, 8
mov eax, dword [0x5726e0]
push eax
mov ecx, dword [0x5726dc]
push ecx
lea edx, [ebp - 0x448]
push edx
call fcn.00433cb0
add esp, 0xc
push 0x5728a0
lea eax, [ebp - 0x448]
push eax
call fcn.00532590
add esp, 8
mov ecx, dword [0x5fdb48]
mov edx, dword [ecx*4 + 0x65bea0]
push edx
lea eax, [ebp - 0x448]
push eax
call fcn.00532590
add esp, 8
mov ecx, dword [0x5fdbac]
mov dword [ebp - 0x118], ecx
cmp dword [0x5726e4], 0x64
jne 0x4b0b66
lea edx, [ebp - 0x448]
push edx
push str.MSG_Dialog_Button_Continue
push 0x5728c0
lea eax, [ebp - 0x558]
push eax
call fcn.00422b80
add esp, 0x10
mov dword [ebp - 0x234], eax
jmp 0x4b0b8c
lea ecx, [ebp - 0x448]
push ecx
push 0x5fd6e0
push 0x5728d4
lea edx, [ebp - 0x558]
push edx
call fcn.00422b80
add esp, 0x10
mov dword [ebp - 0x234], eax
mov eax, dword [ebp - 0x118]
cmp eax, dword [0x5fdbac]
je 0x4b0ba6
mov ecx, dword [ebp - 0x118]
mov dword [0x5fdbac], ecx
cmp dword [ebp - 0x234], 1
jne 0x4b0bbe
mov dword [ebp - 0x114], 0
jmp 0x4b120a
mov edx, dword [0x5fdb48]
mov eax, dword [edx*4 + 0x65bea0]
movsx ecx, byte [eax + 1]
cmp ecx, 0x4e
jne 0x4b10c8
push 0
mov edx, dword [ebp - 0x22c]
push edx
mov eax, dword [ebp - 0x11c]
push eax
mov ecx, dword [0x5fdb08]
push ecx
push 0x1102600
call fcn.0045b180
add esp, 0x14
mov dword [ebp - 0x560], eax
cmp dword [ebp - 0x560], 1
jne 0x4b0cb5
push 2
push 0x5728e4
mov edx, dword [ebp - 0x55c]
imul edx, edx, 0x1564
mov eax, dword [ebp - 0x11c]
imul eax, eax, 0x94
lea ecx, [edx + eax + 0x667080]
mov edx, dword [ebp - 0x22c]
mov eax, dword [ecx + edx*4]
add eax, 4
push eax
call fcn.00532db5
add esp, 0xc
test eax, eax
je 0x4b0cb5
mov ecx, dword [ebp - 0x55c]
imul ecx, ecx, 0x1564
mov edx, dword [ebp - 0x11c]
imul edx, edx, 0x94
lea eax, [ecx + edx + 0x667080]
mov ecx, dword [ebp - 0x22c]
mov edx, dword [eax + ecx*4]
movsx eax, byte [edx + 0xb]
cmp eax, 0x34
je 0x4b0cb5
mov ecx, dword [ebp - 0x55c]
imul ecx, ecx, 0x1564
mov edx, dword [ebp - 0x11c]
imul edx, edx, 0x94
lea eax, [ecx + edx + 0x667080]
mov ecx, dword [ebp - 0x22c]
mov edx, dword [eax + ecx*4]
movsx eax, byte [edx + 0xa]
cmp eax, 0x44
je 0x4b0cb5
jmp 0x4b120a
mov ecx, dword [ebp - 0x11c]
cmp ecx, dword [0x5fda74]
jne 0x4b0cd5
mov edx, dword [ebp - 0x22c]
cmp edx, dword [0x5fda50]
je 0x4b10ac
call fcn.004b4e60
mov dword [0x5fda88], 0
mov eax, dword [ebp - 0x11c]
mov dword [0x5fda74], eax
mov ecx, dword [ebp - 0x22c]
mov dword [0x5fda50], ecx
mov esi, dword [ebp - 0x55c]
imul esi, esi, 0x12c8
mov edx, dword [0x5fda50]
sub edx, 1
push edx
mov eax, dword [0x5fda74]
sub eax, 1
push eax
mov ecx, dword [0x5fdb08]
push ecx
call fcn.00424280
add esp, 0xc
movsx dx, byte [esi + eax*8 + 0x110b486]
mov word [0x65bdd6], dx
push 2
call fcn.004b4790
add esp, 4
mov al, byte [0x5fda70]
mov byte [0x65bdda], al
mov cl, byte [0x5fda4c]
mov byte [0x65bddb], cl
cmp dword [0x5fda74], 0
je 0x4b10ac
push 0x25
mov edx, dword [ebp - 0x55c]
imul edx, edx, 0x94
mov eax, dword [0x5fda74]
mov ecx, dword [edx + eax*4 + 0x70e500]
add ecx, 0xc
push ecx
lea edx, [ebp - 0x448]
push edx
call fcn.00532bd0
add esp, 0xc
lea eax, [ebp - 0x448]
push eax
call fcn.00532e80
add esp, 4
cmp eax, 0x25
jbe 0x4b0dae
mov byte [ebp - 0x423], 0
lea ecx, [ebp - 0x448]
push ecx
push 3
call fcn.00433d40
add esp, 8
lea edx, [ebp - 0x448]
push edx
call fcn.00483f80
push eax
push str.Loading_Sub_Lesson_at__s:__s____
lea eax, [ebp - 0x558]
push eax
call fcn.00532706
add esp, 0x10
call fcn.00483eb0
fstp dword [0x5fda3c]
fld dword [0x5fda3c]
fstp dword [0x5fda40]
mov ecx, dword [ebp - 0x55c]
imul ecx, ecx, 0x1564
mov edx, dword [0x5fda74]
imul edx, edx, 0x94
lea eax, [ecx + edx + 0x667080]
mov ecx, dword [0x5fda50]
cmp dword [eax + ecx*4], 0
je 0x4b0fd5
mov edx, dword [ebp - 0x55c]
imul edx, edx, 0x1564
mov eax, dword [0x5fda74]
imul eax, eax, 0x94
lea ecx, [edx + eax + 0x667080]
mov edx, dword [0x5fda50]
mov eax, dword [ecx + edx*4]
push eax
call fcn.00532e80
add esp, 4
cmp eax, 0x7f
jb 0x4b0fd5
cmp dword [0x5fdc14], 1
jne 0x4b0f69
push 3
push 0x4f
mov ecx, dword [ebp - 0x55c]
imul ecx, ecx, 0x1564
mov edx, dword [0x5fda74]
imul edx, edx, 0x94
lea eax, [ecx + edx + 0x667080]
mov ecx, dword [0x5fda50]
mov edx, dword [eax + ecx*4]
push edx
call fcn.00433b80
add esp, 0xc
test eax, eax
je 0x4b0f69
push 3
mov eax, dword [ebp - 0x55c]
imul eax, eax, 0x1564
mov ecx, dword [0x5fda74]
imul ecx, ecx, 0x94
lea edx, [eax + ecx + 0x667080]
mov eax, dword [0x5fda50]
mov ecx, dword [edx + eax*4]
add ecx, 0x4e
push ecx
mov edx, dword [ebp - 0x55c]
imul edx, edx, 0x1564
mov eax, dword [0x5fda68]
imul eax, eax, 0x94
lea ecx, [edx + eax + 0x667080]
mov edx, dword [0x5fda4c]
mov eax, dword [ecx + edx*4]
add eax, 0x4e
push eax
call fcn.00532db5
add esp, 0xc
test eax, eax
je 0x4b0f69
mov ecx, dword [0x5fda68]
mov dword [ebp - 0x570], ecx
mov edx, dword [0x5fda4c]
mov dword [ebp - 0x56c], edx
mov eax, dword [0x5fda74]
mov dword [0x5fda68], eax
mov ecx, dword [0x5fda50]
mov dword [0x5fda4c], ecx
push 0x5fd6e1
call fcn.004e3550
add esp, 4
call fcn.004d84f0
call fcn.004d8c50
mov edx, dword [ebp - 0x570]
mov dword [0x5fda68], edx
mov eax, dword [ebp - 0x56c]
mov dword [0x5fda4c], eax
push 2
push 0x7e
mov ecx, dword [ebp - 0x55c]
imul ecx, ecx, 0x1564
mov edx, dword [0x5fda74]
imul edx, edx, 0x94
lea eax, [ecx + edx + 0x667080]
mov ecx, dword [0x5fda50]
mov edx, dword [eax + ecx*4]
push edx
call fcn.00433b80
add esp, 0xc
mov dword [ebp - 0x234], eax
cmp dword [ebp - 0x234], 0
jne 0x4b0fb7
mov dword [ebp - 0x234], 0xffffffff
mov eax, dword [ebp - 0x234]
push eax
call fcn.004d65b0
add esp, 4
call fcn.004d7380
push 1
call fcn.004cab50
add esp, 4
mov ecx, dword [ebp - 0x55c]
imul ecx, ecx, 0x1564
mov edx, dword [0x5fda74]
imul edx, edx, 0x94
lea eax, [ecx + edx + 0x667080]
mov ecx, dword [0x5fda50]
cmp dword [eax + ecx*4], 0
jne 0x4b1009
mov byte [ebp - 0x448], 0
jmp 0x4b1045
push 0x25
mov edx, dword [ebp - 0x55c]
imul edx, edx, 0x1564
mov eax, dword [0x5fda74]
imul eax, eax, 0x94
lea ecx, [edx + eax + 0x667080]
mov edx, dword [0x5fda50]
mov eax, dword [ecx + edx*4]
add eax, 0xc
push eax
lea ecx, [ebp - 0x448]
push ecx
call fcn.00532bd0
add esp, 0xc
lea edx, [ebp - 0x448]
push edx
call fcn.00532e80
add esp, 4
cmp eax, 0x25
jbe 0x4b1060
mov byte [ebp - 0x423], 0
lea eax, [ebp - 0x448]
push eax
push 3
call fcn.00433d40
add esp, 8
lea ecx, [ebp - 0x448]
push ecx
lea edx, [ebp - 0x558]
push edx
call fcn.00532590
add esp, 8
push 0x57290c
lea eax, [ebp - 0x558]
push eax
call fcn.00532590
add esp, 8
lea ecx, [ebp - 0x558]
push ecx
push 1
call fcn.00436500
add esp, 8
mov edx, dword [0x5fda50]
push edx
mov eax, dword [0x5fda74]
push eax
call fcn.004b37d0
add esp, 8
jmp 0x4b1d86
call fcn.004b4ab0
call fcn.00483eb0
fstp dword [0x5fda3c]
fld dword [0x5fda3c]
fstp dword [0x5fda40]
cmp dword [0x5c6c1c], 0
jne 0x4b120a
mov ecx, dword [ebp - 0x55c]
imul ecx, ecx, 0x1564
mov edx, dword [ebp - 0x11c]
imul edx, edx, 0x94
lea eax, [ecx + edx + 0x667080]
mov ecx, dword [ebp - 0x22c]
cmp dword [eax + ecx*4], 0
je 0x4b120a
movsx edx, byte [0x5f5980]
test edx, edx
je 0x4b120a
push 2
push 5
mov eax, dword [ebp - 0x55c]
imul eax, eax, 0x1564
mov ecx, dword [ebp - 0x11c]
imul ecx, ecx, 0x94
lea edx, [eax + ecx + 0x667080]
mov eax, dword [ebp - 0x22c]
mov ecx, dword [edx + eax*4]
push ecx
call fcn.00433b80
add esp, 0xc
mov dword [ebp - 0x234], eax
cmp dword [ebp - 0x234], 0
jle 0x4b120a
cmp dword [ebp - 0x234], 0x14
jge 0x4b120a
mov edx, dword [ebp - 0x234]
add edx, 0x40
push edx
push 0x572910
lea eax, [ebp - 0x558]
push eax
call fcn.00532706
add esp, 0xc
lea ecx, [ebp - 0x558]
push ecx
push 0x5f5980
call fcn.00532680
add esp, 8
test eax, eax
jne 0x4b120a
push 0x572914
lea edx, [ebp - 0x558]
push edx
call fcn.00532590
add esp, 8
push 0x5f5980
lea eax, [ebp - 0x558]
push eax
call fcn.00532590
add esp, 8
lea ecx, [ebp - 0x558]
push ecx
push 0x5fd6e2
push 0x572918
push str.MSG_LessonNotLicensed
call fcn.00422b80
add esp, 0x10
mov dword [ebp - 0x114], 0
push 3
mov edx, dword [0x5fdb48]
mov eax, dword [edx*4 + 0x65bea0]
add eax, 2
push eax
lea ecx, [ebp - 0x558]
push ecx
call fcn.00532bd0
add esp, 0xc
mov byte [ebp - 0x555], 0
cmp dword [ebp - 0x120], 0xffffffff
je 0x4b125b
cmp dword [ebp - 0x450], 0xffffffff
je 0x4b125b
lea edx, [ebp - 0x338]
push edx
lea eax, [ebp - 0x558]
push eax
call fcn.00532580
add esp, 8
push 0x572940
push 0x11027b6
call fcn.005327a0
add esp, 8
test eax, eax
jne 0x4b1345
mov ecx, dword [0x5fdb08]
push ecx
call fcn.0042dba0
add esp, 4
cmp eax, 1
jne 0x4b1345
cmp dword [ebp - 0x11c], 2
jne 0x4b129f
cmp dword [ebp - 0x22c], 3
je 0x4b12b9
cmp dword [ebp - 0x11c], 1
jne 0x4b1345
cmp dword [ebp - 0x22c], 2
jne 0x4b1345
push 2
mov edx, dword [ebp - 0x22c]
push edx
mov eax, dword [ebp - 0x11c]
push eax
mov ecx, dword [0x5fdb08]
push ecx
push 0x1102600
call fcn.0045b180
add esp, 0x14
mov dword [ebp - 0x560], eax
cmp dword [ebp - 0x560], 0
jne 0x4b1345
push 0
mov edx, dword [ebp - 0x22c]
push edx
mov eax, dword [ebp - 0x11c]
push eax
mov ecx, dword [0x5fdb08]
push ecx
push 0x1102600
call fcn.0045b180
add esp, 0x14
mov dword [ebp - 0x560], eax
cmp dword [ebp - 0x560], 1
jne 0x4b1345
push 0
mov edx, dword [ebp - 0x22c]
push edx
mov eax, dword [ebp - 0x11c]
push eax
push 0
mov ecx, dword [0x5fdb08]
push ecx
push 0x1102600
call fcn.0045b4f0
add esp, 0x18
mov edx, dword [0x5fdb08]
push edx
lea eax, [ebp - 0x558]
push eax
push 0x1102600
call fcn.0044fb30
add esp, 0xc
cmp eax, 1
jne 0x4b1371
mov dword [ebp - 0x560], 1
jmp 0x4b137b
mov dword [ebp - 0x560], 0
cmp dword [ebp - 0x10c], 0
jne 0x4b140b
push 2
push 0x572944
mov ecx, dword [ebp - 0x55c]
imul ecx, ecx, 0x1564
mov edx, dword [ebp - 0x11c]
imul edx, edx, 0x94
lea eax, [ecx + edx + 0x667080]
mov ecx, dword [ebp - 0x22c]
mov edx, dword [eax + ecx*4]
add edx, 4
push edx
call fcn.00532db5
add esp, 0xc
test eax, eax
jne 0x4b140b
mov eax, dword [ebp - 0x55c]
imul eax, eax, 0x1564
mov ecx, dword [ebp - 0x11c]
imul ecx, ecx, 0x94
lea edx, [eax + ecx + 0x667080]
mov eax, dword [ebp - 0x22c]
mov ecx, dword [edx + eax*4]
movsx edx, byte [ecx + 0xb]
cmp edx, 0x32
jne 0x4b140b
cmp dword [ebp - 0x560], 1
jne 0x4b140b
mov dword [ebp - 0x560], 0
cmp dword [ebp - 0x560], 1
jne 0x4b1429
cmp dword [ebp - 0x10c], 1
jne 0x4b1429
mov dword [ebp - 0x454], 1
jmp 0x4b1488
cmp dword [ebp - 0x560], 1
jne 0x4b1475
cmp dword [ebp - 0x11c], 0
je 0x4b1475
cmp dword [ebp - 0x22c], 0
je 0x4b1475
mov eax, dword [ebp - 0x55c]
imul eax, eax, 0x1564
mov ecx, dword [ebp - 0x11c]
imul ecx, ecx, 0x94
lea edx, [eax + ecx + 0x667080]
mov eax, dword [ebp - 0x22c]
mov ecx, dword [edx + eax*4]
movsx edx, byte [ecx + 0xa]
cmp edx, 0x44
jne 0x4b147e
cmp dword [ebp - 0x114], 0
jne 0x4b1488
mov dword [ebp - 0x454], 1
cmp dword [ebp - 0x454], 1
jne 0x4b1910
cmp dword [ebp - 0x114], 1
jne 0x4b18b7
mov eax, dword [0x5fdb08]
push eax
call fcn.0042dba0
add esp, 4
cmp eax, 1
jne 0x4b14d0
lea ecx, [ebp - 0x448]
push ecx
push 0x572948
push 0
call fcn.0046d1b0
add esp, 0xc
jmp 0x4b15cc
cmp dword [ebp - 0x11c], 0
je 0x4b1580
cmp dword [ebp - 0x22c], 0
je 0x4b1580
mov edx, dword [ebp - 0x55c]
imul edx, edx, 0x1564
mov eax, dword [ebp - 0x11c]
imul eax, eax, 0x94
lea ecx, [edx + eax + 0x667080]
mov edx, dword [ebp - 0x22c]
mov eax, dword [ecx + edx*4]
movsx ecx, byte [eax + 0xa3]
cmp ecx, 0x54
jne 0x4b1580
mov edx, dword [0x5c4c28]
imul edx, edx, 0x127c
add edx, 0x11a6ec0
push edx
call fcn.00462110
add esp, 4
cmp eax, 1
jne 0x4b1568
mov eax, dword [0x5fdb08]
push eax
call fcn.0042db70
add esp, 4
test eax, eax
jne 0x4b1568
lea ecx, [ebp - 0x448]
push ecx
push str.MSG_SPM_WillUnlockMT
push 2
call fcn.0046d1b0
add esp, 0xc
jmp 0x4b157e
lea edx, [ebp - 0x448]
push edx
push str.MSG_ThisTestIsLocked
push 0
call fcn.0046d1b0
add esp, 0xc
jmp 0x4b15cc
mov eax, dword [0x5c4c28]
imul eax, eax, 0x127c
add eax, 0x11a6ec0
push eax
call fcn.00462110
add esp, 4
cmp eax, 1
jne 0x4b15b6
lea ecx, [ebp - 0x448]
push ecx
push str.MSG_SPM_WillUnlockTheLesson
push 2
call fcn.0046d1b0
add esp, 0xc
jmp 0x4b15cc
lea edx, [ebp - 0x448]
push edx
push str.MSG_ThisLessonIsLocked
push 0
call fcn.0046d1b0
add esp, 0xc
push 0x5729c4
lea eax, [ebp - 0x448]
push eax
call fcn.00532590
add esp, 8
push 0x5729c8
lea ecx, [ebp - 0x448]
push ecx
call fcn.00532590
add esp, 8
lea edx, [ebp - 0x558]
push edx
push str.MSG_AskTeacherToUnlock
push 0
call fcn.0046d1b0
add esp, 0xc
lea eax, [ebp - 0x558]
push eax
lea ecx, [ebp - 0x448]
push ecx
call fcn.00532590
add esp, 8
mov byte [ebp - 0x558], 0
call fcn.004869f0
cmp eax, 1
jne 0x4b166c
lea edx, [ebp - 0x108]
push edx
push 1
push 1
lea eax, [ebp - 0x558]
push eax
push 0x5fd6e3
push 0x5729e4
push 0x5729f8
lea ecx, [ebp - 0x448]
push ecx
call fcn.004250a0
add esp, 0x20
mov dword [ebp - 0x234], eax
jmp 0x4b1704
mov edx, dword [ebp - 0x55c]
imul edx, edx, 0x1564
mov eax, dword [ebp - 0x11c]
imul eax, eax, 0x94
lea ecx, [edx + eax + 0x667080]
mov edx, dword [ebp - 0x22c]
cmp dword [ecx + edx*4], 0
jne 0x4b16b7
push 0x5fd6e4
push 0x5fd6e5
push 0x572a08
lea eax, [ebp - 0x448]
push eax
call fcn.00422b80
add esp, 0x10
jmp 0x4b16fa
push 0x5fd6e6
push str.MSG_Dialog_Details
push 0x572a2c
lea ecx, [ebp - 0x448]
push ecx
call fcn.00422b80
add esp, 0x10
mov dword [ebp - 0x234], eax
cmp dword [ebp - 0x234], 2
jne 0x4b16fa
mov edx, dword [ebp - 0x22c]
push edx
mov eax, dword [ebp - 0x11c]
push eax
call fcn.00430f20
add esp, 8
mov dword [ebp - 0x234], 2
mov dword [ebp - 0x128], 1
cmp dword [ebp - 0x234], 1
jne 0x4b18b7
cmp dword [0x5c6c1c], 1
jne 0x4b1733
mov dword [ebp - 0x128], 0
jmp 0x4b18b7
mov ecx, dword [ebp - 0x22c]
push ecx
mov edx, dword [ebp - 0x11c]
push edx
lea eax, [ebp - 0x558]
push eax
call fcn.00424e20
add esp, 0xc
mov dword [ebp - 0x234], eax
cmp dword [ebp - 0x234], 0
jne 0x4b1780
push 0x5fd6e7
push 0x5fd6e8
push 0x572a3c
push str.MSG_Message_InvalidUnlockCode
call fcn.00422b80
add esp, 0x10
jmp 0x4b18b7
lea ecx, [ebp - 0x558]
push ecx
call fcn.00532e80
add esp, 4
push eax
push str.U.C._length_d
lea edx, [ebp - 0x448]
push edx
call fcn.00532706
add esp, 0xc
lea eax, [ebp - 0x448]
push eax
push 0
call fcn.00436500
add esp, 8
cmp dword [ebp - 0x234], 0xffffffff
jne 0x4b17cd
mov dword [ebp - 0x128], 0
jmp 0x4b18b7
lea ecx, [ebp - 0x348]
push ecx
mov edx, dword [0x5c4c28]
imul edx, edx, 0x127c
add edx, 0x11a6ec0
push edx
call fcn.004281d0
add esp, 8
push 0x1102600
push 0x5c
mov eax, dword [0x5c4c28]
imul eax, eax, 0x127c
add eax, 0x11a6f12
push eax
push 0x5c
lea ecx, [ebp - 0x348]
push ecx
push 0x5c44f8
push 0x572a7c
lea edx, [ebp - 0x448]
push edx
call fcn.00532706
add esp, 0x20
cmp dword [0x5f6630], 1
jne 0x4b1854
cmp dword [0x5f663c], 0
je 0x4b1854
push 0x1068ea0
push 0x572a94
lea eax, [ebp - 0x448]
push eax
call fcn.00532706
add esp, 0xc
lea ecx, [ebp - 0x558]
push ecx
lea edx, [ebp - 0x448]
push edx
call fcn.0044b470
add esp, 8
mov dword [ebp - 0x234], eax
cmp dword [ebp - 0x234], 1
jne 0x4b189b
lea eax, [ebp - 0x558]
push eax
lea ecx, [ebp - 0x448]
push ecx
call fcn.0044b610
add esp, 8
mov dword [ebp - 0x128], 0
jmp 0x4b18b7
push 0x5fd6e9
push 0x5fd6ea
push 0x572aa0
push str.MSG_Message_UnlockCodeAlreadyUsed
call fcn.00422b80
add esp, 0x10
cmp dword [ebp - 0x128], 1
je 0x4b18c9
cmp dword [ebp - 0x114], 0
jne 0x4b1910
cmp dword [0x572230], 0xffffffff
jne 0x4b18de
mov dword [0x5fdb48], 1
jmp 0x4b18f4
push 0
mov edx, dword [0x572230]
push edx
call fcn.004d0590
add esp, 8
mov dword [0x5fdb48], eax
mov dword [0x5fd984], 1
mov eax, dword [0x5fdb48]
sub eax, 1
mov dword [0x5fdb48], eax
jmp 0x4b1d86
cmp dword [ebp - 0x10c], 1
jne 0x4b191e
jmp 0x4b1d86
push 2
push 0x572ad4
mov ecx, dword [0x5fdb48]
mov edx, dword [ecx*4 + 0x65bea0]
push edx
call fcn.00532db5
add esp, 0xc
test eax, eax
jne 0x4b1944
jmp 0x4b0cb5
mov eax, dword [ebp - 0x55c]
imul eax, eax, 0x94
mov ecx, dword [0x5fda68]
mov edx, dword [eax + ecx*4 + 0x70e500]
movsx eax, byte [edx + 2]
cmp eax, 0x44
je 0x4b1987
cmp dword [0x5fda68], 0
je 0x4b1987
mov ecx, dword [0x5fda50]
mov dword [0x5fda58], ecx
mov edx, dword [0x5fda74]
mov dword [0x5fda6c], edx
push 0x5fda4c
push 0x5fda70
mov eax, dword [0x5fdb48]
mov ecx, dword [eax*4 + 0x65bea0]
add ecx, 2
push ecx
call fcn.00424d30
add esp, 0xc
cmp dword [ebp - 0x120], 0xffffffff
je 0x4b19d2
cmp dword [ebp - 0x450], 0xffffffff
je 0x4b19d2
mov edx, dword [ebp - 0x120]
mov dword [0x5fda70], edx
mov eax, dword [ebp - 0x450]
mov dword [0x5fda4c], eax
mov ecx, dword [0x5fda70]
mov dword [0x5fda68], ecx
mov dword [0x5fda38], 1
mov edx, dword [0x5fda4c]
cmp edx, dword [ebp - 0x230]
jne 0x4b1b83
mov eax, dword [0x5fda70]
cmp eax, dword [ebp - 4]
jne 0x4b1b83
cmp dword [0x5fda70], 0
je 0x4b1b83
cmp dword [0x5fda4c], 0
je 0x4b1b83
mov ecx, dword [ebp - 0x55c]
imul ecx, ecx, 0x1564
mov edx, dword [0x5fda70]
imul edx, edx, 0x94
lea eax, [ecx + edx + 0x667080]
mov ecx, dword [0x5fda4c]
cmp dword [eax + ecx*4], 0
je 0x4b1b65
mov edx, dword [ebp - 0x55c]
imul edx, edx, 0x1564
mov eax, dword [0x5fda70]
imul eax, eax, 0x94
lea ecx, [edx + eax + 0x667080]
mov edx, dword [0x5fda4c]
mov eax, dword [ecx + edx*4]
push eax
call fcn.00532e80
add esp, 4
cmp eax, 0x7f
jb 0x4b1b65
push 2
push 0x7e
mov ecx, dword [ebp - 0x55c]
imul ecx, ecx, 0x1564
mov edx, dword [0x5fda70]
imul edx, edx, 0x94
lea eax, [ecx + edx + 0x667080]
mov ecx, dword [0x5fda4c]
mov edx, dword [eax + ecx*4]
push edx
call fcn.00433b80
add esp, 0xc
mov dword [ebp - 0x234], eax
mov eax, dword [ebp - 0x234]
cmp eax, dword [0x5fd7b0]
je 0x4b1b65
cmp dword [ebp - 0x234], 0
je 0x4b1b65
mov ecx, dword [ebp - 0x234]
push ecx
call fcn.004d65b0
add esp, 4
call fcn.004d7380
mov edx, dword [0x5fda70]
cmp edx, dword [0x5fda74]
jne 0x4b1b13
mov eax, dword [0x5fda4c]
cmp eax, dword [0x5fda50]
je 0x4b1b40
movsx ecx, word [0x65bddc]
test ecx, ecx
jne 0x4b1b40
movsx edx, word [0x65bdf2]
cmp edx, 5
jle 0x4b1b40
push str.New_Lesson_Write_yes
push 0
call fcn.00436500
add esp, 8
call fcn.004b4e60
jmp 0x4b1b4f
push str.New_Lesson_Write_no
push 0
call fcn.00436500
add esp, 8
mov eax, dword [0x5fda70]
mov dword [0x5fda74], eax
mov ecx, dword [0x5fda4c]
mov dword [0x5fda50], ecx
mov dword [0x5fda38], 0
mov dword [0x5fdb48], 0
push 1
call fcn.004cab50
add esp, 4
mov byte [ebp - 0x555], 0
push 3
mov edx, dword [ebp - 0x55c]
imul edx, edx, 0x1564
mov eax, dword [0x5fda68]
imul eax, eax, 0x94
lea ecx, [edx + eax + 0x667080]
mov edx, dword [0x5fda4c]
mov eax, dword [ecx + edx*4]
add eax, 0x37
push eax
lea ecx, [ebp - 0x558]
push ecx
call fcn.00532bd0
add esp, 0xc
lea edx, [ebp - 0x558]
push edx
call fcn.00535089
add esp, 4
mov dword [0x5fd990], eax
push 3
mov eax, dword [ebp - 0x55c]
imul eax, eax, 0x1564
mov ecx, dword [0x5fda68]
imul ecx, ecx, 0x94
lea edx, [eax + ecx + 0x667080]
mov eax, dword [0x5fda4c]
mov ecx, dword [edx + eax*4]
add ecx, 0x3b
push ecx
lea edx, [ebp - 0x558]
push edx
call fcn.00532bd0
add esp, 0xc
lea eax, [ebp - 0x558]
push eax
call fcn.00535089
add esp, 4
mov dword [0x5fd994], eax
mov ecx, dword [0x5fda4c]
push ecx
mov edx, dword [0x5fda70]
push edx
mov eax, dword [0x5fdb08]
push eax
call fcn.0042dd90
add esp, 0xc
cmp eax, 1
jne 0x4b1cd3
movsx ecx, word [ebp - 0x110]
test ecx, ecx
jne 0x4b1cd3
push 0xa
mov edx, dword [0x5c4c28]
imul edx, edx, 0x127c
add edx, 0x11a6ec0
push edx
call fcn.00460890
add esp, 8
cwde
cmp eax, 1
jne 0x4b1cd3
mov esi, dword [ebp - 0x55c]
imul esi, esi, 0x1c20
mov ecx, dword [0x5fda4c]
sub ecx, 1
push ecx
mov edx, dword [0x5fda70]
sub edx, 1
push edx
mov eax, dword [0x5fdb08]
push eax
call fcn.00424280
add esp, 0xc
imul eax, eax, 0xc
cmp dword [esi + eax + 0xf8d300], 0
jne 0x4b1cd3
mov ecx, 1
mov word [ebp - 0x110], cx
push str.WARNING:_New_Lesson:_Setting_to_MT_1
push 0
call fcn.00436500
add esp, 8
movsx edx, word [ebp - 0x110]
imul edx, edx, 0xffffffff
mov word [0x65bdfc], dx
mov eax, dword [0x5fdb48]
mov ecx, dword [eax*4 + 0x65bea0]
push ecx
call fcn.00532e80
add esp, 4
cmp eax, 9
jb 0x4b1d43
push 3
push 0x572b2c
mov edx, dword [0x5fdb48]
mov eax, dword [edx*4 + 0x65bea0]
add eax, 6
push eax
call fcn.00532db5
add esp, 0xc
test eax, eax
je 0x4b1d43
push 3
push 7
mov ecx, dword [0x5fdb48]
mov edx, dword [ecx*4 + 0x65bea0]
push edx
call fcn.00433b80
add esp, 0xc
mov dword [0x5fda5c], eax
jmp 0x4b1d4d
mov dword [0x5fda5c], 0
mov eax, dword [ebp - 0x22c]
push eax
mov ecx, dword [ebp - 0x11c]
push ecx
call fcn.004b37d0
add esp, 8
call fcn.004a8420
push 1
call fcn.004bc3f0
add esp, 4
call fcn.004b4a30
call fcn.004b4aa0
mov dword [0x5fd984], 1
pop esi
mov ecx, dword [ebp - 8]
xor ecx, ebp
call fcn.00532783
mov esp, ebp
pop ebp
ret