Function at 0x40e884
Capabilities:
Identify system language via api

Disassembly:
push ebp
mov ebp, esp
add esp, 0xfffff7ac
push ebx
push esi
push edi
mov ebx, 0x4683e4
mov edi, 0x6e26e0
push 2
call sub.kernel32.dll_SetErrorMode
push 0x40e80c
call sub.kernel32.dll_SetUnhandledExceptionFilter
push 0x6de9e8
call fcn.0042ea64
pop ecx
call fcn.00401654
call fcn.00401534
push 0x6deb14
lea eax, [ebx + 0x4359]
push eax
push str.schoolbell.log
call fcn.0045a6e0
add esp, 0xc
call sub.kernel32.dll_GetCurrentProcessId
mov dword [0x465824], eax
lea edx, [ebx + 0x14f5]
push edx
call fcn.0041e6b4
pop ecx
test al, al
je 0x40e966
lea ecx, [ebx + 0x14f5]
push ecx
push 0x69a2d0
call fcn.0041e754
add esp, 8
push 0x69a2d0
call fcn.004027dc
pop ecx
push eax
lea eax, [ebx + 0x436b]
push eax
call fcn.004016b8
add esp, 8
lea edx, [ebx + 0x4384]
push edx
lea ecx, [ebx + 0x5b3]
push ecx
call fcn.0041e7ac
add esp, 8
xor esi, esi
lea eax, [ebx + 0x4384]
push eax
call fcn.0041e6b4
pop ecx
test al, al
je 0x40e959
push 0x64
call sub.kernel32.dll_Sleep
inc esi
cmp esi, 0x64
jl 0x40e93b
lea edx, [ebx + 0x4384]
push edx
call fcn.004583e8
pop ecx
mov ecx, dword [0x465824]
lea eax, [ebx + 0x3e93]
push ecx
push eax
push 0x69a2d0
call fcn.0045a6e0
add esp, 0xc
lea edx, [ebx + 0x14f5]
push edx
push 0x69a2d0
call fcn.0041e7ac
add esp, 8
lea ecx, [ebx + 0x435c]
push ecx
call fcn.0041e634
pop ecx
cmp eax, 0x30d40
jle 0x40ea04
call fcn.00411f68
push eax
call fcn.00411f44
push eax
call fcn.00411f1c
push eax
lea eax, [ebx + 0x438f]
push eax
push 0x69a2d0
call fcn.0045a6e0
add esp, 0x14
push 0x69a2d0
lea edx, [ebx + 0x435c]
push edx
call fcn.0041e494
add esp, 8
lea ecx, [ebx + 0x435c]
push ecx
call fcn.004583e8
pop ecx
push 0x69a2d0
lea eax, [ebx + 0x43ab]
push eax
call fcn.004016b8
add esp, 8
lea edx, [ebx + 0x43c0]
push edx
call fcn.004016b8
pop ecx
lea eax, [ebx + 0x43e7]
lea ecx, [ebx + 0x43f3]
lea edx, [ebx + 0x2328]
push ecx
push eax
push edx
lea ecx, [ebx + 0x43d2]
push ecx
call fcn.004016b8
add esp, 0x10
push 0x6deb14
lea eax, [ebx + 0x43fc]
push eax
call fcn.004016b8
add esp, 8
push 0x6ded08
lea edx, [ebx + 0x4407]
push edx
call fcn.004016b8
add esp, 8
call fcn.00401654
lea ecx, [ebx + 0x2a6]
push ecx
lea eax, [ebx + 0x4412]
push eax
call fcn.00458c50
add esp, 8
mov esi, eax
test esi, esi
je 0x40eafd
push esi
push 0x3e7
push 0x465d45
call fcn.004588f0
add esp, 0xc
push 0x465d45
call fcn.00443cb8
pop ecx
push esi
push 0x3e7
push str.http:__www.regnow.com_softsell_nph_softsell.cgi_item16048_2localeen
call fcn.004588f0
add esp, 0xc
push str.http:__www.regnow.com_softsell_nph_softsell.cgi_item16048_2localeen
call fcn.00443cb8
pop ecx
push esi
push 0x3e7
push 0x46612d
call fcn.004588f0
add esp, 0xc
push 0x46612d
call fcn.00443cb8
pop ecx
push esi
push 0x3e7
push str.http:__www.schoolbell.mn_software.de_bestellen.html
call fcn.004588f0
add esp, 0xc
push str.http:__www.schoolbell.mn_software.de_bestellen.html
call fcn.00443cb8
pop ecx
push esi
call fcn.004587c0
pop ecx
call sub.kernel32.dll_GetUserDefaultLangID
cmp al, 7
jne 0x40eb21
lea eax, [ebx + 0x441c]
push eax
call fcn.0041e6b4
pop ecx
test al, al
je 0x40eb21
mov dword [0x465834], 1
call fcn.00401534
cmp byte [0x465d39], 0
jne 0x40ed0c
lea edx, [ebx + 0xddf]
push edx
call fcn.0041e6b4
pop ecx
test al, al
jne 0x40ed0c
cmp dword [0x465834], 1
jne 0x40eb60
lea ecx, [ebx + 0x442b]
push ecx
call fcn.00424b48
pop ecx
jmp 0x40eb6d
lea eax, [ebx + 0x443b]
push eax
call fcn.00424b48
pop ecx
lea edx, [ebx + 0x444a]
push edx
call fcn.004016b8
pop ecx
call fcn.00409a24
push 0x6ded08
lea ecx, [ebp - 0x214]
push ecx
call fcn.0045695c
add esp, 8
cmp dword [0x465834], 0
jne 0x40ebb2
lea eax, [ebx + 0x445d]
push eax
lea edx, [ebp - 0x214]
push edx
call fcn.00456880
add esp, 8
cmp dword [0x465834], 1
jne 0x40ebd1
lea ecx, [ebx + 0x446b]
push ecx
lea eax, [ebp - 0x214]
push eax
call fcn.00456880
add esp, 8
lea edx, [ebp - 0x214]
push edx
call fcn.0040b160
pop ecx
call fcn.00401534
lea ecx, [ebx + 0xddf]
push ecx
push edi
call fcn.00453f00
add esp, 8
lea eax, [ebx + 0x447a]
push eax
call fcn.0041e7cc
pop ecx
lea edx, [ebx + 0xa32]
push edx
lea ecx, [ebx + 0xa32]
push ecx
call fcn.00401934
add esp, 8
lea eax, [ebx + 0x3792]
push eax
lea edx, [ebx + 0x3792]
push edx
call fcn.00401934
add esp, 8
lea ecx, [ebx + 0x4481]
push ecx
lea eax, [ebx + 0x4481]
push eax
call fcn.00401934
add esp, 8
lea edx, [ebx + 0x37bb]
push edx
lea ecx, [ebx + 0x37bb]
push ecx
call fcn.00401934
add esp, 8
lea eax, [ebx + 0xa32]
push eax
push 2
push 0x11
push edi
call fcn.004543f8
add esp, 0x10
lea edx, [ebx + 0x4492]
push edx
lea ecx, [ebx + 0xa32]
push ecx
call fcn.0041e494
add esp, 8
lea eax, [ebx + 0x3792]
push eax
push 2
push 0x12
push edi
call fcn.004543f8
add esp, 0x10
lea edx, [ebx + 0x449d]
push edx
lea ecx, [ebx + 0x3792]
push ecx
call fcn.0041e494
add esp, 8
lea eax, [ebx + 0x4481]
push eax
push 2
push 0x13
push edi
call fcn.004543f8
add esp, 0x10
lea edx, [ebx + 0x44a8]
push edx
lea ecx, [ebx + 0x4481]
push ecx
call fcn.0041e494
add esp, 8
lea eax, [ebx + 0x37bb]
push eax
push 2
push 0x14
push edi
call fcn.004543f8
add esp, 0x10
lea edx, [ebx + 0x44b3]
push edx
lea ecx, [ebx + 0x37bb]
push ecx
call fcn.0041e494
add esp, 8
push edi
call fcn.00454008
pop ecx
call fcn.00424c2c
call fcn.00404368
push 0x69a2d0
call fcn.0041727c
pop ecx
test al, al
je 0x40ed71
lea eax, [ebx + 0x4465]
push eax
push 0x69a2d0
call fcn.00456a9d
add esp, 8
test eax, eax
jne 0x40ed50
lea edx, [ebx + 0x44be]
push edx
push 0x69a2d0
call fcn.00456a9d
add esp, 8
test eax, eax
je 0x40ed71
push 0x69a2d0
lea ecx, [ebp - 0x408]
push ecx
call fcn.0045695c
add esp, 8
lea eax, [ebp - 0x408]
push eax
call fcn.0040b160
pop ecx
call fcn.0040310c
call fcn.00409a24
lea edx, [ebx + 0x44c4]
push edx
call fcn.004172c0
pop ecx
test al, al
je 0x40ed93
mov byte [0x465add], 1
cmp dword [0x465834], 1
jne 0x40eda8
lea ecx, [ebx + 0x38ab]
mov dword [str.cfg.eng], ecx
lea eax, [ebx + 0x6cc]
push eax
call fcn.00401358
pop ecx
cmp dword [0x465834], 1
jne 0x40edcb
lea edx, [ebx + 0x44ce]
push edx
call fcn.0042ff1c
pop ecx
cmp byte [0x46582c], 0
je 0x40edfc
call fcn.0040e294
mov esi, eax
and esi, 0xff
call fcn.00404eb8
test esi, esi
jne 0x40edfc
lea eax, [ebx + 0x44d5]
push eax
call fcn.004016b8
pop ecx
call fcn.0040dec0
call fcn.00410234
call fcn.00418e00
lea edx, [ebx + 0x44dd]
push edx
call fcn.0042398c
pop ecx
mov edi, eax
cmp edi, 0x244
jge 0x40ee22
mov edi, 0x244
lea eax, [ebx + 0x3328]
push eax
call fcn.00401358
pop ecx
push eax
lea edx, [ebp - 0x854]
push edx
call fcn.0045695c
add esp, 8
cmp byte [0x465d39], 0
je 0x40ee7f
cmp dword [0x465834], 1
jne 0x40ee69
lea ecx, [ebx + 0x44e9]
push ecx
lea eax, [ebp - 0x854]
push eax
call fcn.00456880
add esp, 8
jmp 0x40ee7f
lea edx, [ebx + 0x44f9]
push edx
lea ecx, [ebp - 0x854]
push ecx
call fcn.00456880
add esp, 8
call fcn.00401534
mov byte [ebp - 0x11], 0
lea eax, [ebx + 0x3e97]
push eax
call fcn.0041e6b4
pop ecx
test al, al
je 0x40ef97
lea edx, [ebx + 0x2a6]
push edx
lea ecx, [ebx + 0x3e97]
push ecx
call fcn.00458c50
add esp, 8
mov esi, eax
test esi, esi
je 0x40ef2e
mov byte [ebp - 0x11], 1
push esi
push 0x63
push 0x69a2d0
call fcn.004588f0
add esp, 0xc
push 0x69a2d0
call fcn.004027dc
pop ecx
mov dword [ebp - 4], eax
push esi
push 0x63
push 0x69a2d0
call fcn.004588f0
add esp, 0xc
push 0x69a2d0
call fcn.004027dc
pop ecx
mov dword [ebp - 8], eax
push esi
push 0x63
push 0x69a2d0
call fcn.004588f0
add esp, 0xc
push esi
push 0x63
push 0x69a2d0
call fcn.004588f0
add esp, 0xc
push 0x69a2d0
call fcn.004027dc
pop ecx
mov dword [ebp - 0x10], eax
push esi
call fcn.004587c0
pop ecx
mov dword [ebp - 0xc], 0x26c
cmp dword [ebp - 0x10], 0x244
jge 0x40ef45
mov dword [ebp - 0x10], 0x244
cmp edi, dword [ebp - 0x10]
jge 0x40ef4d
mov dword [ebp - 0x10], edi
cmp dword [ebp - 4], 0
jge 0x40ef58
xor eax, eax
mov dword [ebp - 4], eax
cmp dword [ebp - 8], 0
jge 0x40ef63
xor edx, edx
mov dword [ebp - 8], edx
lea ecx, [ebx + 0x4508]
push ecx
call fcn.0042398c
pop ecx
sub eax, dword [ebp - 0xc]
cmp eax, dword [ebp - 4]
jge 0x40ef7d
xor eax, eax
mov dword [ebp - 4], eax
lea edx, [ebx + 0x4511]
push edx
call fcn.0042398c
pop ecx
sub eax, dword [ebp - 0x10]
cmp eax, dword [ebp - 8]
jge 0x40ef97
xor ecx, ecx
mov dword [ebp - 8], ecx
cmp byte [ebp - 0x11], 0
je 0x40efd0
mov eax, dword [0x465830]
push eax
mov edx, dword [ebp - 0x10]
push edx
mov ecx, dword [ebp - 0xc]
push ecx
lea ecx, [ebp - 0x854]
mov eax, dword [ebp - 8]
push eax
lea eax, [ebx + 0x451a]
mov edx, dword [ebp - 4]
push edx
push ecx
push eax
push 0x69a2d0
call fcn.0045a6e0
add esp, 0x20
jmp 0x40eff3
mov edx, dword [0x465830]
lea ecx, [ebp - 0x854]
push edx
push edi
push ecx
lea eax, [ebx + 0x4562]
push eax
push 0x69a2d0
call fcn.0045a6e0
add esp, 0x14
push 0x69a2d0
push 0x6937e8
call fcn.00452344
add esp, 8
push 0
push 0x40e108
push 0x6937e8
call fcn.00452c80
add esp, 0xc
push 0x69a2d0
lea edx, [ebx + 0x45ac]
push edx
call fcn.004016b8
add esp, 8
lea ecx, [ebp - 0x854]
push ecx
push 0x693780
call fcn.0045695c
add esp, 8
call fcn.00411f88
mov dword [0x6d2ba4], eax
call fcn.00411fa8
mov dword [0x6d2ba8], eax
call fcn.00411fc8
mov dword [0x6d2bac], eax
call fcn.00411f68
mov dword [0x6d2bb8], eax
call fcn.00411f44
mov dword [0x6d2bb4], eax
call fcn.00411f1c
mov dword [0x6d2bb0], eax
call fcn.004040d4
push 0
push 0
call fcn.00407490
add esp, 8
cmp byte [0x465808], 0
je 0x40f0c6
push 2
push 0x6cb338
call fcn.0044b200
add esp, 8
push 1
push 0x6cb340
call fcn.0044b200
add esp, 8
push 0x64
push 0x6cb348
call fcn.0044b200
add esp, 8
jmp 0x40f0f9
push 0xc8
push 0x6cb338
call fcn.0044b200
add esp, 8
push 0x64
push 0x6cb340
call fcn.0044b200
add esp, 8
push 0x2710
push 0x6cb348
call fcn.0044b200
add esp, 8
call fcn.00401cf8
mov eax, dword [0x6961c0]
push eax
call fcn.0044f62c
pop ecx
call fcn.00403b48
call fcn.00411f68
mov dword [ebp - 0x18], eax
push 0
call fcn.0040dadc
pop ecx
cmp byte [0x465add], 0
je 0x40f136
push ebx
push 0x6937e8
call fcn.0045398c
add esp, 8
mov dword [ebp - 0x1c], 0xffffffff
call fcn.00411f68
mov edi, eax
jmp 0x40f53a
call fcn.004312e4
mov esi, eax
lea eax, [ebx + 0x32bb]
push eax
push esi
push 0x696ad8
call fcn.0043f1bc
add esp, 0xc
test al, al
je 0x40f188
push 0
lea edx, [ebx + 0x32bb]
push edx
push 0x696ad8
call fcn.0043f4c0
add esp, 8
push eax
call fcn.00407490
add esp, 8
cmp esi, dword [0x6cb34c]
jne 0x40f2bb
cmp dword [0x6d2ba8], 0
jne 0x40f1bd
mov ecx, dword [0x6d2ba4]
cmp ecx, dword [ebp - 0x1c]
je 0x40f1bd
mov eax, dword [0x6d2ba4]
mov dword [ebp - 0x1c], eax
lea edx, [ebx + 0x45b7]
push edx
call fcn.004016b8
pop ecx
cmp dword [0x465810], 0
jne 0x40f23c
cmp byte [0x465d39], 0
jne 0x40f23c
cmp edi, dword [0x6d2bb8]
je 0x40f23c
cmp dword [0x6d2ba8], 7
jne 0x40f23c
mov eax, dword [0x465888]
cmp eax, 0xffffffff
je 0x40f206
mov edx, dword [0x6d2ba4]
shl edx, 2
lea edx, [edx + edx*2]
lea edx, [edx + edx*4]
sub eax, edx
add eax, dword [0x6d2ba8]
cmp eax, 0x1e
jle 0x40f23c
lea ecx, [ebx + 0x45c9]
push ecx
call fcn.004016b8
pop ecx
call fcn.00401534
lea eax, [ebx + 0x14f5]
push eax
call fcn.004583e8
pop ecx
call fcn.00401654
lea edx, [ebx + 0xd84]
push edx
call fcn.004333c8
pop ecx
call fcn.0040dec0
cmp dword [0x465810], 0
jne 0x40f2bb
cmp byte [0x465d39], 0
je 0x40f2bb
cmp edi, dword [0x6d2bb8]
je 0x40f2bb
cmp dword [0x6d2ba8], 7
jne 0x40f2bb
mov eax, dword [0x465888]
cmp eax, 0xffffffff
je 0x40f285
mov edx, dword [0x6d2ba4]
shl edx, 2
lea edx, [edx + edx*2]
lea edx, [edx + edx*4]
sub eax, edx
add eax, dword [0x6d2ba8]
cmp eax, 0x1e
jle 0x40f2bb
lea ecx, [ebx + 0x45c9]
push ecx
call fcn.004016b8
pop ecx
call fcn.00401534
lea eax, [ebx + 0x14f5]
push eax
call fcn.004583e8
pop ecx
call fcn.00401654
lea edx, [ebx + 0x35f0]
push edx
call fcn.004333c8
pop ecx
call fcn.0040dec0
cmp esi, dword [0x6cb34c]
jne 0x40f2f0
cmp byte [0x465d39], 0
je 0x40f2f0
call fcn.00403364
test al, al
je 0x40f2f0
call fcn.0040a748
call fcn.00409a24
call fcn.004040d4
push 0
push 0
call fcn.00407490
add esp, 8
cmp esi, dword [0x6cb33c]
jne 0x40f3d6
call fcn.00402b9c
call fcn.00401534
lea ecx, [ebx + 0x4384]
push ecx
call fcn.0041e6b4
pop ecx
test al, al
je 0x40f33b
lea eax, [ebx + 0x45de]
push eax
call fcn.004016b8
pop ecx
lea edx, [ebx + 0x4384]
push edx
call fcn.004583e8
pop ecx
call fcn.0040dec0
jmp 0x40f54c
lea ecx, [ebp - 0x20]
push ecx
call fcn.00462180
pop ecx
lea eax, [ebp - 0x20]
push eax
call fcn.00461b80
pop ecx
mov edx, dword [eax + 8]
mov dword [0x6d2ba4], edx
mov ecx, dword [eax + 4]
mov dword [0x6d2ba8], ecx
mov edx, dword [eax]
mov dword [0x6d2bac], edx
mov ecx, dword [eax + 0xc]
mov dword [0x6d2bb8], ecx
mov edx, dword [eax + 0x10]
inc edx
mov dword [0x6d2bb4], edx
mov eax, dword [eax + 0x14]
add eax, 0x76c
mov dword [0x6d2bb0], eax
cmp byte [0x465808], 0
je 0x40f397
call fcn.0040dfa4
mov ecx, dword [0x6d2bb8]
cmp ecx, dword [ebp - 0x18]
je 0x40f3d1
push 0
call fcn.0040dadc
pop ecx
mov eax, dword [0x6d2bb8]
mov dword [ebp - 0x18], eax
call fcn.00401534
call fcn.004040d4
cmp dword [0x465838], 0
jne 0x40f3d1
push 0
push 0
call fcn.00407490
add esp, 8
call fcn.0040be20
cmp byte [0x465d39], 0
je 0x40f40c
mov edx, dword [0x465838]
sub edx, 1
jb 0x40f3f1
je 0x40f3fa
dec edx
je 0x40f403
jmp case.default.0x40f417
push esi
call fcn.0040bea0
pop ecx
jmp case.default.0x40f417
push esi
call fcn.0040c078
pop ecx
jmp case.default.0x40f417
push esi
call fcn.0040e3a4
pop ecx
jmp case.default.0x40f417
mov ecx, dword [0x465838]
cmp ecx, 5
ja case.default.0x40f417
jmp dword [ecx*4 + 0x40f41e]
push esi
call fcn.0040bea0
pop ecx
jmp case.default.0x40f417
push esi
call fcn.0040d6e4
pop ecx
jmp case.default.0x40f417
push esi
call fcn.0040c1c4
pop ecx
jmp case.default.0x40f417
push esi
call fcn.0040b514
pop ecx
jmp case.default.0x40f417
push esi
call fcn.0040e3a4
pop ecx
jmp case.default.0x40f417
push esi
call fcn.0040e59c
pop ecx
cmp esi, dword [0x6cb344]
jne 0x40f486
call fcn.004027ec
cmp dword [0x466bf4], 0
je 0x40f486
dec dword [0x466bf4]
cmp byte [0x46582e], 0
je 0x40f533
lea eax, [ebx + 0x14cd]
push eax
push esi
push 0x699e58
call fcn.0043f1bc
add esp, 0xc
test al, al
je 0x40f4dd
lea edx, [ebx + 0x45ef]
push edx
push 0x699e58
call fcn.0043f4c0
add esp, 8
test eax, eax
je 0x40f4cb
mov byte [0x46582d], 0
mov byte [0x46582e], 0
push 0x696b68
call fcn.004522e8
pop ecx
lea ecx, [ebx + 0x1889]
push ecx
push esi
push 0x699e58
call fcn.0043f1bc
add esp, 0xc
test al, al
je 0x40f51c
lea eax, [ebx + 0x1889]
push eax
push 0x699e58
call fcn.004402fc
add esp, 8
mov byte [0x46582e], 0
push 0x696b68
call fcn.004522e8
pop ecx
cmp esi, 0x1b
jne 0x40f533
mov byte [0x46582e], 0
push 0x696b68
call fcn.004522e8
pop ecx
push esi
call fcn.00402d80
pop ecx
call fcn.0042fee8
test al, al
jne 0x40f149
call fcn.0040dec0
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret