Function at 0x45e3c0
Capabilities:
Check for time delay via gettickcount
Parse credit card information

Disassembly:
push 0xffffffffffffffff
push 0x48d0bc
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 0x648
push ebx
push ebp
mov ebp, ecx
push esi
push edi
xor ebx, ebx
mov eax, dword [ebp + 0x30]
lea ecx, [esp + 0x10]
mov dword [esp + 0x50], ebx
mov eax, dword [eax + 0x9c]
push eax
call dword [sym.imp.Staff2.dll_public:_void___thiscall_CSWMRLock::constructor_class_CSWMRG__]
lea ecx, [esp + 0x10]
mov dword [esp + 0x660], ebx
call dword [sym.imp.Staff2.dll_public:_int___thiscall_CSWMRLock::ReadLock_void_]
mov edi, dword [esp + 0x668]
or ecx, 0xffffffff
xor eax, eax
lea edx, [esp + 0x69]
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov eax, ecx
mov esi, edi
mov edi, edx
lea edx, [esp + 0x28]
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
push edx
and ecx, 3
lea eax, [esp + 0x20]
rep movsb byte es:[edi], byte [esi]
lea edx, [esp + 0x6c]
push eax
lea ecx, [ebp + 0x31dc]
push edx
call fcn.00488210
test eax, eax
je 0x45f52c
mov eax, dword [esp + 0x28]
lea ecx, [eax + 0x37d8]
add eax, 0x42d0
mov dword [esp + 0x38], eax
mov eax, dword [ebp + 0x354c]
cmp eax, ebx
mov dword [esp + 0x24], ecx
jne 0x45e48c
mov eax, dword [ecx + 0x990]
and eax, 0x20000
mov dword [esp + 0x60], eax
je 0x45f536
cmp dword [ebp + 0x31d0], 1
jne 0x45e4b2
cmp dword [ebp + 0x32c4], 0x57
jne 0x45e4b2
cmp dword [ebp + 0x35d0], ebx
jg 0x45e4b2
cmp dword [ecx + 0x990], ebx
je 0x45f52c
movsx edi, word [esp + 0x66c]
push edi
lea ecx, [ebp + 0x32dc]
call fcn.00485e20
cmp eax, ebx
mov dword [esp + 0x2c], eax
je 0x45f52c
mov ecx, eax
cmp byte [ecx], 1
sete al
xor ebx, ebx
test al, al
mov dword [esp + 0x3c], ebx
jne 0x45e556
mov eax, dword [ecx + 0x10]
cmp eax, 0x3b9aca00
jge 0x45e4f2
mov ebx, eax
jmp 0x45e535
lea esi, [eax - 0x3b9aca00]
cmp esi, 0x64
jb 0x45e506
mov ecx, dword [esp + 0x38]
mov ebx, dword [ecx + 0x10]
jmp 0x45e535
mov edx, dword [esp + 0x38]
mov ecx, dword [edx + 0x10]
cmp ecx, 0x989680
jbe 0x45e526
mov eax, 0x51eb851f
mul ecx
shr edx, 5
mov ebx, edx
imul ebx, esi
jmp 0x45e535
imul ecx, esi
mov eax, 0x51eb851f
mul ecx
mov ebx, edx
shr ebx, 5
mov eax, dword [esp + 0x678]
mov dword [esp + 0x3c], ebx
cmp eax, 1
jne 0x45e56f
mov eax, dword [esp + 0x24]
cmp dword [eax + 0x7a0], ebx
jae 0x45e56f
jmp 0x45f52c
mov ecx, dword [esp + 0x24]
mov edx, dword [esp + 0x38]
mov eax, dword [ecx + 0x7a8]
mov ecx, dword [edx + 0x14]
cmp eax, ecx
jb 0x45f52c
mov ax, word [esp + 0x7c]
test ax, ax
jle 0x45e583
mov ecx, 1
movsx eax, ax
jmp 0x45e58d
movsx eax, ax
mov ecx, 6
neg eax
call dword [sym.imp.rm3944.dll_NewCheckForMovingAttack]
nop
nop
nop
cmp edi, 0x34
jge 0x45e74f
lea esi, [edi - 0x19]
cmp esi, 0x1a
ja case.0x45e5b3.28
xor edx, edx
mov dl, byte [esi + 0x45f578]
jmp dword [edx*4 + 0x45f568]
cmp ecx, 1
jne 0x45e610
cmp eax, 0x51
jl 0x45e5cd
cmp eax, 0x5f
jle case.0x45e5b3.28
cmp eax, 0x8c
jl 0x45e5df
cmp eax, 0x8f
jle case.0x45e5b3.28
cmp eax, 0xdc
je case.0x45e5b3.28
cmp eax, 0xdd
je case.0x45e5b3.28
cmp eax, 0xaa
jl 0x45f52c
cmp eax, 0xae
jle case.0x45e5b3.28
jmp 0x45f52c
cmp ecx, 6
jne 0x45f52c
cmp eax, 0x52
je case.0x45e5b3.28
cmp eax, 0x70
je case.0x45e5b3.28
cmp eax, 0x84
je case.0x45e5b3.28
cmp eax, 0x98
je case.0x45e5b3.28
cmp eax, 0xac
je case.0x45e5b3.28
cmp eax, 0xc0
je case.0x45e5b3.28
jmp 0x45f52c
cmp ecx, 1
jne 0x45e703
cmp eax, 0x34
jl 0x45e69c
cmp eax, 0x3f
jle case.0x45e5b3.28
cmp eax, 0x89
je case.0x45e5b3.28
cmp eax, 0x8a
je case.0x45e5b3.28
cmp eax, 0xf0
je case.0x45e5b3.28
cmp eax, 0xf1
je case.0x45e5b3.28
cmp eax, 0xbe
jl 0x45e6da
cmp eax, 0xc2
jle case.0x45e5b3.28
cmp eax, 0x44
jl 0x45e6e8
cmp eax, 0x48
jle case.0x45e5b3.28
cmp eax, 0x91
jl 0x45f52c
cmp eax, 0x92
jle case.0x45e5b3.28
jmp 0x45f52c
cmp ecx, 6
jne 0x45f52c
cmp eax, 0x54
je case.0x45e5b3.28
cmp eax, 0x72
je case.0x45e5b3.28
cmp eax, 0x86
je case.0x45e5b3.28
cmp eax, 0x9a
je case.0x45e5b3.28
cmp eax, 0xae
je case.0x45e5b3.28
cmp eax, 0xc2
jne 0x45f52c
jmp case.0x45e5b3.28
cmp ecx, 1
jne 0x45e7a9
cmp eax, 0x34
jl 0x45e762
cmp eax, 0x3f
jle case.0x45e5b3.28
cmp eax, 0x89
je case.0x45e5b3.28
cmp eax, 0x8a
je case.0x45e5b3.28
cmp eax, 0xf0
je case.0x45e5b3.28
cmp eax, 0xf1
je case.0x45e5b3.28
cmp eax, 0xbe
jl 0x45f52c
cmp eax, 0xc2
jle case.0x45e5b3.28
jmp 0x45f52c
cmp ecx, 6
jne 0x45f52c
cmp eax, 0x54
je case.0x45e5b3.28
cmp eax, 0x72
je case.0x45e5b3.28
cmp eax, 0x86
je case.0x45e5b3.28
cmp eax, 0x9a
je case.0x45e5b3.28
cmp eax, 0xae
je case.0x45e5b3.28
cmp eax, 0xc2
je case.0x45e5b3.28
jmp 0x45f52c
cmp ecx, 1
jne 0x45e854
cmp eax, ecx
jl 0x45e807
cmp eax, 0x20
jle case.0x45e5b3.28
cmp eax, 0x61
jl 0x45e815
cmp eax, 0x63
jle case.0x45e5b3.28
cmp eax, 0x75
jl 0x45e823
cmp eax, 0x7b
jle case.0x45e5b3.28
cmp eax, 0xc8
je case.0x45e5b3.28
cmp eax, 0xc9
je case.0x45e5b3.28
cmp eax, 0x96
jl 0x45f52c
cmp eax, 0x9a
jle case.0x45e5b3.28
jmp 0x45f52c
cmp ecx, 6
jne 0x45f52c
cmp eax, 0x50
je case.0x45e5b3.28
cmp eax, 0x6e
je case.0x45e5b3.28
cmp eax, 0x82
je case.0x45e5b3.28
cmp eax, 0x96
je case.0x45e5b3.28
cmp eax, 0xaa
je case.0x45e5b3.28
cmp eax, 0xbe
je case.0x45e5b3.28
jmp 0x45f52c
mov eax, dword [esp + 0x2c]
cmp byte [eax + 0x30], 0x3b
je 0x45e982
mov ecx, dword [esp + 0x28]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov esi, dword [esp + 0x2c]
mov ecx, dword [esp + 0x28]
push ecx
mov ecx, ebp
mov dl, byte [esi + 0x30]
push edx
call fcn.00447460
cmp eax, 1
je 0x45f52c
mov ax, word [esi + 0x28]
test ax, ax
jne 0x45ea0b
movsx eax, word [esp + 0x1e]
movsx ecx, word [esp + 0x1c]
push eax
push ecx
mov ecx, ebp
call fcn.00447330
cmp eax, 0x16
jne 0x45e9d4
mov ecx, dword [esp + 0x28]
push 0
push 0
push 0x7e
call fcn.0043fc10
jmp 0x45f52c
mov edi, dword [esp + 0x66c]
mov edx, dword [esp + 0x28]
mov ecx, dword [esp + 0x38]
push edi
push ebx
lea eax, [esp + 0x70]
push edx
mov edx, dword [esp + 0x30]
push eax
push ecx
push edx
push esi
mov ecx, ebp
call fcn.004478d0
cmp eax, 1
jne 0x45f52c
push 0
push 0
jmp 0x45ec26
cmp ax, 0x2710
jl 0x45ec42
mov al, byte [esi + 0x30]
cmp al, 1
je 0x45ebde
cmp al, 8
je 0x45ebde
cmp al, 0xb
je 0x45ebde
cmp al, 0x19
je 0x45ebde
cmp al, 0x22
je 0x45ebde
cmp al, 0x35
je 0x45ebde
cmp al, 0x3e
je 0x45ebde
cmp al, 0x40
je 0x45ebde
call dword [sym.imp.rm3944.dll_NewCheckForGrpSkill]
nop
nop
nop
nop
and al, 8
cmp al, 8
je 0x45f52c
mov eax, dword [esp + 0x38]
mov edx, dword [eax + 0x84]
test edx, edx
jbe 0x45ea87
test byte [ecx + 0x850], 0x20
jne 0x45f52c
mov edx, dword [esp + 0x678]
mov edi, dword [esp + 0x66c]
push edx
mov edx, dword [esp + 0x674]
push edx
mov edx, dword [esp + 0x67c]
push edx
lea edx, [esp + 0xe0]
push edx
mov edx, dword [esp + 0x38]
push edi
push ebx
push edx
lea edx, [esp + 0x38]
push edx
lea edx, [esp + 0x88]
push edx
push eax
push ecx
push esi
mov ecx, ebp
call fcn.00454600
cmp eax, 0xffffffff
je 0x45f52c
mov esi, dword [esp + 0x678]
cmp esi, 1
je 0x45eae5
test eax, eax
jle 0x45eb10
push eax
lea eax, [esp + 0xd8]
push eax
lea ecx, [esp + 0x24]
push edi
lea edx, [esp + 0x74]
push ecx
push edx
mov ecx, ebp
call fcn.0045f9b0
mov ecx, dword [ebp + 0x32c8]
lea eax, [esp + 0x1c]
push eax
call fcn.0047d9e0
lea ecx, [esp + 0x10]
call dword [sym.imp.Staff2.dll_public:_int___thiscall_CSWMRLock::Unlock_void_]
cmp esi, 1
jne 0x45f536
cmp di, 0x31
jne 0x45eb7e
push 0x1c
call sub.MFC42.DLL_operatornew
mov ebx, eax
lea edi, [esp + 0x6d]
or ecx, 0xffffffff
xor eax, eax
add esp, 4
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov edx, ecx
mov esi, edi
mov edi, ebx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov word [ebx + 0x12], 4
call dword [sym.imp.KERNEL32.dll_GetTickCount]
mov dword [ebx + 0x18], eax
mov word [ebx + 0x14], 0x31
push ebx
mov ecx, ebp
mov word [ebx + 0x16], 0x1f4
call fcn.0045fcd0
jmp 0x45f536
call dword [sym.imp.rm3944.dll_NewCheckForMultiAttack]
nop
nop
nop
nop
nop
push 0x1c
call sub.MFC42.DLL_operatornew
mov ebx, eax
lea edi, [esp + 0x6d]
or ecx, 0xffffffff
xor eax, eax
add esp, 4
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov eax, ecx
mov esi, edi
mov edi, ebx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov word [ebx + 0x12], 2
call dword [sym.imp.KERNEL32.dll_GetTickCount]
mov dword [ebx + 0x18], eax
call dword [sym.imp.rm3944.dll_NewMultiAttack]
push ebx
mov ecx, ebp
mov word [ebx + 0x16], 0x1f4
call fcn.0045fcd0
jmp 0x45f536
mov ecx, dword [esp + 0x670]
mov edi, dword [esp + 0x66c]
mov eax, dword [esp + 0x28]
lea edx, [esp + 0xd4]
push ecx
push edx
push edi
push ebx
lea ecx, [esp + 0x2c]
push eax
mov eax, dword [esp + 0x4c]
lea edx, [esp + 0x7c]
push ecx
mov ecx, dword [esp + 0x3c]
push edx
push eax
push ecx
push esi
mov ecx, ebp
call fcn.00453b00
cmp eax, 0xffffffff
je 0x45ec38
lea edx, [esp + 0xd4]
push eax
push edx
lea eax, [esp + 0x24]
push edi
lea ecx, [esp + 0x74]
push eax
push ecx
mov ecx, ebp
call fcn.0045f9b0
lea edx, [esp + 0x1c]
push edx
jmp 0x45f521
mov edx, dword [esp + 0x670]
or ecx, 0xffffffff
mov edi, edx
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
dec ecx
je 0x45ed9c
or ebx, 0xffffffff
mov edi, edx
mov ecx, ebx
lea esi, [esp + 0xa5]
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov edx, esi
mov eax, ecx
mov esi, edi
mov edi, edx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
lea eax, [esp + 0x44]
and ecx, 3
push eax
rep movsb byte es:[edi], byte [esi]
lea ecx, [esp + 0x34]
lea edx, [esp + 0xa8]
push ecx
push edx
lea ecx, [ebp + 0x31dc]
call fcn.00488210
test eax, eax
jne 0x45ecd2
lea eax, [esp + 0x58]
lea ecx, [esp + 0x30]
push eax
push ecx
mov ecx, dword [ebp + 0x32c8]
lea edx, [esp + 0xac]
push edx
add ecx, 0x40
call fcn.0040a290
test eax, eax
je 0x45ecde
mov dword [esp + 0x50], 1
jmp 0x45ed07
mov eax, dword [esp + 0x44]
mov ecx, dword [esp + 0x28]
cmp ecx, eax
jne 0x45ecf4
lea ecx, [esp + 0x10]
call dword [sym.imp.Staff2.dll_public:_int___thiscall_CSWMRLock::Unlock_void_]
mov dword [esp + 0x660], ebx
jmp 0x45f541
lea ecx, [eax + 0x37d8]
add eax, 0x42d0
mov dword [esp + 0x40], ecx
mov dword [esp + 0x4c], eax
mov ebx, dword [esp + 0x32]
mov esi, dword [esp + 0x30]
movsx eax, word [esp + 0x1e]
movsx edx, bx
sub eax, edx
mov di, word [esp + 0x1c]
cdq
mov ecx, eax
xor ecx, edx
sub ecx, edx
movsx edx, si
movsx eax, di
sub eax, edx
cdq
xor eax, edx
sub eax, edx
cmp eax, ecx
jle 0x45ed38
mov ecx, eax
mov dl, byte [esp + 0x20]
mov al, byte [esp + 0x34]
cmp dl, al
je 0x45ed6b
test dl, dl
jne 0x45ed54
cmp si, di
jle 0x45ed54
cmp bx, word [esp + 0x1e]
jg 0x45ed64
test al, al
jne 0x45ed6b
cmp di, si
jle 0x45ed6b
cmp word [esp + 0x1e], bx
jle 0x45ed6b
mov edx, 1
jmp 0x45ed6d
xor edx, edx
mov eax, dword [esp + 0x2c]
add edx, ecx
movsx ecx, word [eax + 0x28]
cmp edx, ecx
jg 0x45f52c
lea edx, [esp + 0x30]
lea eax, [esp + 0x1c]
push edx
push eax
lea ecx, [ebp + 0x323c]
call fcn.00486030
test eax, eax
je 0x45f52c
mov ecx, dword [esp + 0x2c]
mov al, byte [ecx + 0x30]
cmp al, 1
je 0x45f37b
cmp al, 0x2c
je 0x45f37b
movsx edx, word [esp + 0x1e]
movsx eax, word [esp + 0x1c]
push edx
push eax
mov ecx, ebp
call fcn.00472c10
movsx ecx, word [esp + 0x1e]
movsx edx, word [esp + 0x1c]
push ecx
push edx
mov ecx, ebp
mov dword [esp + 0x6c], eax
call fcn.00472ca0
movsx ecx, word [esp + 0x1c]
mov esi, eax
movsx eax, word [esp + 0x1e]
push eax
push ecx
mov ecx, ebp
mov dword [esp + 0xa8], esi
call fcn.00472cf0
mov edi, dword [esp + 0x670]
mov dword [esp + 0x54], eax
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
dec ecx
je 0x45f1e4
movsx edx, word [esp + 0x32]
movsx eax, word [esp + 0x30]
push edx
push eax
mov ecx, ebp
call fcn.00472c10
movsx ecx, word [esp + 0x32]
movsx edx, word [esp + 0x30]
push ecx
push edx
mov ecx, ebp
mov dword [esp + 0x64], eax
call fcn.00472cf0
movsx ecx, word [esp + 0x30]
mov dword [esp + 0x48], eax
movsx eax, word [esp + 0x32]
push eax
push ecx
mov ecx, ebp
call fcn.00472ca0
mov ebx, dword [esp + 0x24]
mov dword [esp + 0x60], eax
mov dl, byte [ebx + 0x84e]
and dl, 8
cmp dl, 8
je 0x45f52c
mov eax, dword [esp + 0x38]
mov ecx, dword [eax + 0x84]
test ecx, ecx
jbe 0x45ee8a
test byte [ebx + 0x850], 0x20
jne 0x45f52c
mov eax, dword [esp + 0x50]
test eax, eax
jne 0x45f08f
mov ecx, dword [esp + 0x40]
mov al, byte [ecx + 0x24]
test al, al
jl 0x45f08f
cmp al, 9
jg 0x45f08f
mov edx, dword [esp + 0x4c]
mov eax, dword [edx + 0x60]
test eax, eax
je 0x45f52c
mov eax, dword [esp + 0x44]
cmp dword [eax + 0x43a4], 1
jne 0x45f52c
mov ecx, dword [ebx + 0xaf0]
push 1
push ecx
mov ecx, ebp
call fcn.004644b0
mov edx, dword [esp + 0x40]
mov esi, eax
push 1
mov ecx, ebp
mov eax, dword [edx + 0xaf0]
push eax
call fcn.004644b0
mov ecx, dword [esp + 0x40]
mov edi, eax
mov eax, dword [ebx + 0xaf0]
push 1
mov edx, dword [ecx + 0xaf0]
mov ecx, ebp
push edx
push eax
call fcn.00464360
mov ecx, dword [esp + 0x44]
mov dword [esp + 0x24], eax
xor eax, eax
cmp dword [ecx + 0x43a4], 2
sete al
cmp eax, 1
je 0x45f52c
cmp esi, edi
je 0x45ef4a
mov eax, dword [esp + 0x54]
test eax, eax
je 0x45f52c
mov eax, dword [esp + 0x48]
test eax, eax
jne 0x45ef64
jmp 0x45f52c
mov eax, 1
cmp esi, eax
jne 0x45ef69
cmp edi, eax
jne 0x45ef69
mov ecx, dword [esp + 0x24]
test ecx, ecx
jne 0x45ef69
jmp 0x45f52c
mov eax, 1
mov edx, dword [esp + 0x40]
mov esi, dword [edx + 0x980]
test esi, esi
jne 0x45efc4
mov ecx, dword [edx + 0xa3c]
test ecx, ecx
jne 0x45efc4
mov ecx, dword [esp + 0x24]
test ecx, ecx
jne 0x45efc4
cmp dword [esp + 0xa0], eax
je 0x45f52c
cmp dword [esp + 0x60], eax
je 0x45f52c
mov ecx, dword [esp + 0x54]
mov edi, dword [esp + 0x48]
cmp ecx, edi
jne 0x45f52c
cmp dword [esp + 0x64], eax
je 0x45f52c
cmp dword [esp + 0x5c], eax
je 0x45f52c
mov eax, dword [esp + 0x54]
test eax, eax
je 0x45efd4
mov eax, dword [esp + 0x48]
test eax, eax
jne 0x45f01e
mov eax, dword [ebp + 0x3664]
cmp eax, 2
je 0x45efee
cmp eax, 3
je 0x45efee
cmp eax, 4
mov ecx, 0xf
jne 0x45eff3
mov ecx, 0x14
cmp dword [ebx + 0x20], ecx
jbe 0x45f52c
cmp eax, 2
je 0x45f010
cmp eax, 3
je 0x45f010
cmp eax, 4
mov eax, 0xf
jne 0x45f015
mov eax, 0x14
cmp dword [edx + 0x20], eax
jbe 0x45f52c
mov eax, dword [ebx + 0x980]
test eax, eax
jbe 0x45f030
test esi, esi
je 0x45f52c
mov eax, dword [ebx + 0xa3c]
test eax, eax
ja 0x45f52c
mov eax, dword [esp + 0x674]
test eax, eax
je 0x45f52c
cmp dword [ebp + 0x32c4], 0x4e
jne 0x45f062
mov eax, dword [esp + 0x24]
test eax, eax
je 0x45f52c
mov dl, byte [esp + 0xc0]
and dl, 8
cmp dl, 8
jne 0x45f171
test esi, esi
jne 0x45f171
test byte [esp + 0x84], dl
jne 0x45f171
jmp 0x45f52c
cmp esi, 1
je 0x45f52c
or esi, 0xffffffff
mov ecx, ebp
push esi
call fcn.00464990
test eax, eax
jle 0x45f0d9
cmp eax, 0x28
jg 0x45f0d9
push eax
mov eax, dword [ebx + 0xaf0]
push eax
lea ecx, [ebp + 0x3310]
call fcn.00402700
test eax, eax
jne 0x45f0d9
lea ecx, [esp + 0x10]
call dword [sym.imp.Staff2.dll_public:_int___thiscall_CSWMRLock::Unlock_void_]
mov dword [esp + 0x660], esi
jmp 0x45f541
mov ecx, ebp
call fcn.00464a70
cmp eax, 1
jne 0x45f118
mov ecx, dword [ebp + 0x3574]
mov edx, dword [ebx + 0xaf0]
push ecx
push edx
lea ecx, [ebp + 0x3310]
call fcn.00402860
test eax, eax
jne 0x45f118
lea ecx, [esp + 0x10]
call dword [sym.imp.Staff2.dll_public:_int___thiscall_CSWMRLock::Unlock_void_]
mov dword [esp + 0x660], esi
jmp 0x45f541
mov eax, dword [ebp + 0x32c4]
cmp eax, 0xb4
jl 0x45f171
cmp eax, 0xbc
jg 0x45f171
cmp eax, 0xb4
jne 0x45f13c
cmp dword [ebx + 0xaf0], 2
jne 0x45f14c
cmp eax, 0xb5
jne 0x45f171
cmp dword [ebx + 0xaf0], 1
je 0x45f171
mov eax, dword [esp + 0x58]
mov ecx, dword [eax + 0x11c]
cmp byte [ecx], 0x57
jne 0x45f171
lea ecx, [esp + 0x10]
call dword [sym.imp.Staff2.dll_public:_int___thiscall_CSWMRLock::Unlock_void_]
mov dword [esp + 0x660], esi
jmp 0x45f541
mov edx, dword [esp + 0x2c]
cmp byte [edx + 0x30], 0x24
jne 0x45f1e8
mov eax, dword [esp + 0x1c]
mov esi, dword [esp + 0x66c]
mov cx, word [esp + 0x20]
mov edx, dword [esp + 0x30]
mov dword [esp + 0x98], eax
mov ax, word [esp + 0x34]
cmp si, 0x19
mov word [esp + 0x9c], cx
mov dword [esp + 0x1c], edx
mov word [esp + 0x20], ax
je 0x45f1b8
cmp si, 0x2d
jne 0x45f1ef
lea ecx, [esp + 0x1c]
push 1
push ecx
mov ecx, dword [esp + 0x30]
call fcn.0043d2f0
mov edx, dword [ebx + 0x84c]
mov dword [esp + 0x82], edx
mov eax, dword [ebx + 0x850]
mov dword [esp + 0x86], eax
jmp 0x45f1ef
mov ebx, dword [esp + 0x24]
mov esi, dword [esp + 0x66c]
mov edi, dword [esp + 0x670]
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
dec ecx
je 0x45f2f0
mov ecx, dword [esp + 0x2c]
cmp byte [ecx + 0x30], 0x24
je 0x45f2f0
mov eax, dword [esp + 0x50]
test eax, eax
jne 0x45f293
mov edx, dword [esp + 0x5c]
mov eax, dword [esp + 0x64]
mov ecx, dword [esp + 0x48]
push edx
mov edx, dword [esp + 0x58]
push eax
mov eax, dword [esp + 0x2c]
push ecx
push edx
mov edx, dword [esp + 0x54]
lea ecx, [esp + 0xe4]
push eax
push ecx
lea eax, [esp + 0x48]
push edx
mov edx, dword [esp + 0x68]
lea ecx, [esp + 0xc0]
push eax
mov eax, dword [esp + 0x60]
push ecx
mov ecx, dword [esp + 0x60]
push edx
mov edx, dword [esp + 0x50]
push eax
push esi
push ecx
lea eax, [esp + 0x50]
push edx
mov edx, dword [esp + 0x70]
lea ecx, [esp + 0xa0]
push eax
mov eax, dword [esp + 0x68]
push ecx
push edx
push ebx
push eax
mov ecx, ebp
call fcn.00448940
cmp eax, 1
jne 0x45f52c
push 0x2f
jmp 0x45f357
mov eax, dword [esp + 0x58]
lea edx, [esp + 0xd4]
push edx
lea ecx, [esp + 0x34]
push eax
mov eax, dword [esp + 0x44]
lea edx, [esp + 0xac]
push ecx
mov ecx, dword [esp + 0x34]
push edx
push esi
push eax
lea edx, [esp + 0x34]
push ecx
mov ecx, dword [esp + 0x54]
lea eax, [esp + 0x84]
push edx
mov edx, dword [esp + 0x4c]
push eax
push ecx
push ebx
push edx
mov ecx, ebp
call fcn.0044d720
cmp eax, 1
jne 0x45f52c
lea eax, [esp + 0xd4]
push 0x2f
push eax
push esi
jmp 0x45f50b
mov ecx, dword [esp + 0x2c]
cmp byte [ecx + 0x30], 0x24
jne 0x45f52c
mov edx, dword [esp + 0x674]
lea eax, [esp + 0xd4]
push edx
lea ecx, [esp + 0xa9]
push eax
lea edx, [esp + 0x38]
push ecx
mov ecx, dword [esp + 0x48]
lea eax, [esp + 0xa4]
push edx
mov edx, dword [esp + 0x38]
push eax
push esi
push ecx
lea eax, [esp + 0x38]
push edx
mov edx, dword [esp + 0x58]
lea ecx, [esp + 0x88]
push eax
mov eax, dword [esp + 0x50]
push ecx
push edx
push ebx
push eax
mov ecx, ebp
call fcn.00451410
cmp eax, 0xffffffff
je 0x45f52c
push eax
lea ecx, [esp + 0xd8]
lea edx, [esp + 0x20]
push ecx
push esi
lea eax, [esp + 0x74]
push edx
push eax
mov ecx, ebp
call fcn.0045f9b0
lea ecx, [esp + 0x1c]
push ecx
jmp 0x45f521
lea edx, [esp + 0x30]
lea eax, [esp + 0x1c]
push edx
push eax
lea ecx, [ebp + 0x323c]
call fcn.00486030
test eax, eax
je 0x45f52c
mov eax, dword [esp + 0x50]
test eax, eax
jne 0x45f46d
mov ebx, dword [esp + 0x40]
mov al, byte [ebx + 0x24]
test al, al
jl 0x45f46d
cmp al, 9
jg 0x45f46d
mov ecx, dword [esp + 0x24]
push 1
mov edx, dword [ecx + 0xaf0]
mov ecx, ebp
push edx
call fcn.004644b0
mov esi, eax
mov eax, dword [ebx + 0xaf0]
push 1
push eax
mov ecx, ebp
call fcn.004644b0
mov edx, dword [esp + 0x24]
mov ecx, dword [ebx + 0xaf0]
mov edi, eax
push ecx
mov eax, dword [edx + 0xaf0]
mov ecx, ebp
push eax
call fcn.004646c0
test esi, esi
jne 0x45f409
test edi, edi
je 0x45f422
jmp 0x45f52c
cmp esi, 1
jne 0x45f52c
cmp edi, esi
jne 0x45f52c
cmp eax, esi
jne 0x45f52c
lea ecx, [esp + 0xd4]
lea edx, [esp + 0x30]
push ecx
mov ecx, dword [esp + 0x48]
lea eax, [esp + 0xa8]
push edx
push eax
lea edx, [esp + 0x28]
push ecx
mov ecx, dword [esp + 0x34]
lea eax, [esp + 0x78]
push edx
mov edx, dword [esp + 0x3c]
push eax
mov eax, dword [esp + 0x44]
push ecx
push edx
mov cl, byte [eax + 0x30]
push ecx
mov ecx, ebp
call fcn.00448700
cmp eax, 1
jne 0x45f52c
jmp 0x45f4f9
cmp word [esp + 0xb6], 0x56
jne 0x45f52c
push 0xffffffffffffffff
mov ecx, ebp
call fcn.00464990
mov esi, eax
test esi, esi
jle 0x45f52c
cmp esi, 0x28
jg 0x45f52c
mov ecx, ebp
call fcn.004445a0
mov eax, dword [eax + 0x18]
push esi
mov esi, dword [esp + 0x28]
mov ecx, dword [esi + 0xaf0]
push ecx
mov ecx, eax
call dword [sym.imp.rmDB.dll_public:_int___thiscall_CArmy::IsAgitOwner_int__int_]
cmp eax, 1
jne 0x45f52c
lea edx, [esp + 0xd4]
lea eax, [esp + 0x30]
push edx
mov edx, dword [esp + 0x5c]
lea ecx, [esp + 0xa8]
push eax
push ecx
lea eax, [esp + 0x28]
push edx
mov edx, dword [esp + 0x38]
push eax
mov eax, dword [esp + 0x40]
lea ecx, [esp + 0x7c]
push ecx
mov cl, byte [eax + 0x30]
push esi
push edx
push ecx
mov ecx, ebp
call fcn.00448560
cmp eax, 1
jne 0x45f52c
mov eax, dword [esp + 0x66c]
lea edx, [esp + 0xd4]
push 0x2f
push edx
push eax
lea ecx, [esp + 0x28]
lea edx, [esp + 0x74]
push ecx
push edx
mov ecx, ebp
call fcn.0045f9b0
lea eax, [esp + 0x1c]
push eax
mov ecx, dword [ebp + 0x32c8]
call fcn.0047d9e0
lea ecx, [esp + 0x10]
call dword [sym.imp.Staff2.dll_public:_int___thiscall_CSWMRLock::Unlock_void_]
mov dword [esp + 0x660], 0xffffffff
lea ecx, [esp + 0x10]
call dword [sym.imp.Staff2.dll_public_virtual:_void___thiscall_CSWMRLock::destructor_void_]
mov ecx, dword [esp + 0x658]
pop edi
pop esi
pop ebp
pop ebx
mov dword fs:[0], ecx
add esp, 0x654
ret 0x14