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

Disassembly:
jmp 0x4216c0
sub esp, 0x12c
mov eax, dword [0x53bbf0]
xor eax, esp
mov dword [esp + 0x128], eax
push ebx
push ebp
push esi
mov esi, ecx
mov eax, dword [esi + 0x138]
push edi
xor edi, edi
mov dword [esi + 0x2a54], edi
cmp word [eax + 0x42], di
mov dword [esp + 0x10], edi
lea ebx, [edi + 1]
jle 0x42176a
mov ebp, 0x44
lea ebx, [ebx]
mov ecx, dword [esi + 0x138]
movsx eax, word [ecx + ebp]
cdq
xor eax, edx
sub eax, edx
cmp eax, 0x13ec
jle 0x42171a
xor eax, eax
jmp 0x421727
mov edx, dword [esi + 0x178c]
mov eax, dword [edx + eax*4 + 0x1f48]
lea ecx, [eax + 0x104]
mov eax, dword [ecx]
xor eax, 0x12345678
jle 0x421757
mov edx, dword [ecx]
mov eax, edx
xor eax, 0x12345678
sub eax, dword [esi + 0x2a48]
xor eax, 0x12345678
push eax
push edx
push ecx
mov dword [ecx], eax
call fcn.004aa7b0
add esp, 0xc
mov ecx, dword [esi + 0x138]
movsx edx, word [ecx + 0x42]
add edi, ebx
add ebp, 4
cmp edi, edx
jl 0x421700
xor ecx, ecx
cmp dword [esi + 0x6c18], ecx
mov dword [esp + 0x34], ecx
je 0x42177c
mov dword [esp + 0x34], ebx
mov eax, dword [esi + 0x6bc8]
cmp eax, ecx
mov dword [esp + 0x28], ecx
je 0x42179b
mov eax, dword [eax + 0x48]
mov edx, dword [eax]
mov ecx, eax
mov eax, dword [edx + 4]
call eax
cmp eax, 4
jne 0x4217a9
xor eax, eax
mov dword [esi + 0x6c18], eax
mov dword [esi + 0x6c2c], eax
mov ecx, dword [esi + 0x108]
imul ecx, ecx, 0x1e0
xor ebp, ebp
cmp byte [ecx + esi + 0xe8d3], 0
je 0x4218b2
mov eax, dword [esi + 0x6c18]
cmp eax, ebp
je 0x4218a6
cdq
xor eax, edx
sub eax, edx
cmp eax, 0x13ec
jg 0x4218a6
mov edx, dword [esi + 0x178c]
mov eax, dword [edx + eax*4 + 0x1f48]
cmp eax, ebp
je 0x4218a6
lea edi, [eax + 0x104]
mov eax, dword [edi]
xor eax, 0x12345678
jg 0x421894
mov ecx, dword [esi + 0x1798]
push ebp
push ebp
push 0x12c
push ebx
push str.This_is_a_safe_zone__you_cannot_fire_a_weapon_in_this_location.
call fcn.0040245f
mov ecx, dword [edi]
xor ecx, 0x12345678
cmp ecx, 0x28
jle 0x421834
mov eax, edi
jmp 0x421869
lea edx, [esp + 0x14]
push edx
mov dword [esp + 0x18], ebp
call fcn.004aa790
mov eax, dword [esp + 0x18]
push 0x12345650
push eax
lea eax, [esp + 0x20]
push eax
mov dword [esp + 0x24], 0x12345650
call fcn.004aa7b0
add esp, 0x10
lea eax, [esp + 0x14]
mov dword [esp + 0x10], ebx
test byte [esp + 0x10], bl
mov ecx, dword [eax]
mov dword [edi], ecx
je 0x421885
and dword [esp + 0x10], 0xfffffffe
lea edx, [esp + 0x14]
push edx
call fcn.004aa7a0
add esp, 4
mov ecx, dword [esi + 0x59c]
push ebp
push ebp
push ebp
push ebp
call fcn.004a7120
mov eax, dword [0x563908]
mov ecx, dword [eax + 0x6bc8]
mov edx, dword [ecx]
mov eax, dword [edx + 0x14]
call eax
mov dword [esi + 0x6c18], ebp
mov dword [esi + 0x6c2c], ebp
mov eax, dword [0x563914]
mov ecx, dword [esi + 0x14c]
mov edx, dword [eax + 4]
mov ecx, dword [edx + ecx*4]
xor ecx, dword [eax]
jle 0x4218cd
mov dword [esi + 0x6c18], ebp
mov ecx, dword [esi + 0x6c2c]
cmp ecx, ebp
jne 0x4228ae
mov ecx, dword [esi + 0x6c18]
cmp ecx, 0xffff
jne 0x421bde
cmp dword [esi + 0x6c6c], ebp
je 0x422941
mov eax, dword [esi + 0x6bc8]
test eax, eax
je 0x422941
mov ecx, dword [eax + 0x48]
mov edx, dword [ecx]
mov eax, dword [edx + 4]
call eax
cmp eax, 4
je 0x422941
mov ecx, dword [esi + 0x6c6c]
mov edx, dword [ecx]
mov eax, dword [edx + 8]
call eax
test eax, eax
je 0x4219e1
mov ecx, dword [esi + 0x138]
xor ebx, ebx
cmp word [ecx + 0x42], bx
jle 0x4219e1
mov ebp, 0x44
jmp 0x421950
mov edx, dword [esi + 0x138]
movsx eax, word [edx + ebp]
cdq
xor eax, edx
sub eax, edx
cmp eax, 0x13ec
jg 0x4219c9
mov ecx, dword [esi + 0x178c]
mov eax, dword [ecx + eax*4 + 0x1f48]
test eax, eax
je 0x4219c9
mov edx, dword [esi + 0x6c6c]
mov ecx, dword [eax + 0x104]
lea edi, [eax + 0x104]
mov eax, dword [edx + 0x124]
xor ecx, 0x12345678
cmp ecx, eax
jle 0x42199d
mov eax, edi
jmp 0x4219ac
push eax
lea ecx, [esp + 0x24]
call fcn.004011e5
or dword [esp + 0x10], 2
test byte [esp + 0x10], 2
mov edx, dword [eax]
mov dword [edi], edx
je 0x4219c9
and dword [esp + 0x10], 0xfffffffd
lea eax, [esp + 0x20]
push eax
call fcn.004aa7a0
add esp, 4
mov ecx, dword [esi + 0x138]
movsx edx, word [ecx + 0x42]
add ebx, 1
add ebp, 4
cmp ebx, edx
jl 0x421950
mov ecx, dword [esi + 0x6c6c]
mov eax, dword [ecx]
mov edx, dword [eax + 4]
call edx
cmp eax, 0x11
jne 0x422941
mov edi, dword [esi + 0x6c6c]
cmp word [edi + 0x1b4], 0
jne 0x421a80
mov eax, dword [esi + 0x6bc8]
cmp dword [eax + 0x9c], 0
jl 0x421a80
cmp dword [esi + 0x1774], 0
je 0x421a80
mov ecx, dword [edi + 0x104]
lea eax, [edi + 0x104]
xor ecx, 0x12345678
cmp ecx, 0x28
jg 0x421a46
push 0x28
lea ecx, [esp + 0x24]
call fcn.004011e5
or dword [esp + 0x10], 4
test byte [esp + 0x10], 4
mov edx, dword [esi + 0x6c6c]
mov eax, dword [eax]
mov dword [edx + 0x104], eax
je 0x421a68
lea ecx, [esp + 0x20]
push ecx
call fcn.004aa7a0
add esp, 4
mov ecx, dword [esi + 0x59c]
push 0
push 0
push 0
push 0
call fcn.004a7120
jmp 0x422941
cmp word [edi + 0x1b6], 0
jne 0x421adb
mov edx, dword [esi + 0x6bc4]
cmp dword [edx + 0x78], 0
jle 0x421adb
mov ecx, dword [edi + 0x104]
lea eax, [edi + 0x104]
xor ecx, 0x12345678
cmp ecx, 0x28
mov ebx, 8
jg 0x421ac1
push 0x28
lea ecx, [esp + 0x1c]
call fcn.004011e5
or dword [esp + 0x10], ebx
test byte [esp + 0x10], bl
mov edx, dword [esi + 0x6c6c]
mov eax, dword [eax]
mov dword [edx + 0x104], eax
je 0x421a68
lea ecx, [esp + 0x18]
jmp 0x421a5f
mov ecx, esi
call fcn.00401ec4
test eax, eax
je 0x421b40
mov eax, dword [esi + 0x6c6c]
mov edx, dword [eax + 0x104]
add eax, 0x104
xor edx, 0x12345678
cmp edx, 0x28
mov ebx, 0x10
jg 0x421b16
push 0x28
lea ecx, [esp + 0x20]
call fcn.004011e5
or dword [esp + 0x10], ebx
test byte [esp + 0x10], bl
mov ecx, dword [esi + 0x6c6c]
mov edx, dword [eax]
mov dword [ecx + 0x104], edx
je 0x422941
lea eax, [esp + 0x1c]
push eax
call fcn.004aa7a0
add esp, 4
jmp 0x422941
movsx eax, word [edi + 0x274]
mov ecx, dword [esi + 0x6bc8]
mov edx, dword [ecx]
mov edx, dword [edx + 0x80]
push 1
push 0
push eax
mov eax, dword [esi + 0x6c74]
push eax
mov eax, dword [esi + 0x6c70]
push eax
call edx
mov ecx, dword [esi + 0x6bc8]
mov eax, dword [ecx]
mov edx, dword [esi + 0x6c78]
mov eax, dword [eax + 0x68]
push edx
call eax
mov eax, dword [esi + 0x6c6c]
mov ecx, dword [eax + 0x104]
add eax, 0x104
xor ecx, 0x12345678
cmp ecx, 0x4b
mov ebx, 0x20
jg 0x421bae
push 0x4b
lea ecx, [esp + 0x18]
call fcn.004011e5
or dword [esp + 0x10], ebx
test byte [esp + 0x10], bl
mov edx, dword [esi + 0x6c6c]
mov eax, dword [eax]
mov dword [edx + 0x104], eax
je 0x421bcf
lea ecx, [esp + 0x14]
push ecx
call fcn.004aa7a0
add esp, 4
mov dword [esi + 0x6c6c], 0
jmp 0x422941
cmp ecx, ebp
jle 0x422941
mov eax, ecx
cdq
xor eax, edx
sub eax, edx
cmp eax, 0x13ec
jg 0x42289f
mov edx, dword [esi + 0x178c]
mov edi, dword [edx + eax*4 + 0x1f48]
test edi, edi
je 0x42289f
cmp dword [edi + 0xfc], 0
je 0x42289f
push ecx
mov ecx, esi
call fcn.00402676
test eax, eax
jle 0x42289f
mov eax, dword [edi + 0x104]
xor eax, 0x12345678
lea ebx, [edi + 0x104]
jg 0x42288d
mov eax, dword [edi]
mov edx, dword [eax + 0xc]
mov ecx, edi
call edx
test eax, eax
je 0x421eae
push edi
mov ecx, esi
call fcn.004019e7
xor ebp, ebp
cmp dword [edi + 0x108], ebp
je 0x421c8b
mov ecx, dword [esi + 0x5a0]
push ebp
push ebp
push ebp
push ebp
call fcn.004a7120
mov ecx, esi
mov dword [edi + 0x108], ebp
call fcn.00401640
mov dword [esi + 0x6c18], ebp
jmp 0x422941
mov eax, dword [edi + 0x80]
push eax
mov ecx, esi
call fcn.00402676
movsx ecx, word [edi + 0x160]
mov dword [esp + 0x2c], eax
mov eax, 0x51eb851f
imul ecx
mov ecx, dword [esi + 0x138]
sar edx, 5
mov ebx, edx
shr ebx, 0x1f
add ebx, edx
cmp word [ecx + 0x42], bp
mov dword [esp + 0x10], ebp
mov dword [esp + 0x1c], ebp
mov dword [esp + 0x18], ebp
mov dword [esp + 0x20], ebp
jle 0x421d7b
mov dword [esp + 0x14], 0x44
lea ecx, [ecx]
mov edx, dword [esi + 0x138]
mov eax, dword [esp + 0x14]
movsx ecx, word [eax + edx]
push ecx
mov ecx, dword [esi + 0x178c]
call fcn.004028ec
mov ebp, eax
test ebp, ebp
je 0x421d59
cmp dword [ebp + 0x108], 0
je 0x421d59
mov edx, dword [ebp]
mov eax, dword [edx + 0xc]
mov ecx, ebp
call eax
test eax, eax
je 0x421d59
movzx eax, word [edi + 0x160]
mov edx, 1
add dword [esp + 0x10], edx
test ax, ax
je 0x421d59
movzx ecx, word [ebp + 0x160]
cmp cx, ax
jne 0x421d3c
add dword [esp + 0x18], edx
movsx ecx, cx
mov eax, 0x51eb851f
imul ecx
sar edx, 5
mov ecx, edx
shr ecx, 0x1f
add ecx, edx
cmp ecx, ebx
jne 0x421d59
add dword [esp + 0x1c], 1
mov edx, dword [esi + 0x138]
mov eax, dword [esp + 0x20]
movsx ecx, word [edx + 0x42]
add dword [esp + 0x14], 4
add eax, 1
cmp eax, ecx
mov dword [esp + 0x20], eax
jl 0x421ce0
mov edx, dword [esp + 0x10]
cmp edx, dword [esi + 0xe116]
jl 0x421dac
mov ecx, dword [esi + 0x59c]
push 0
push 0
push 0
push 0
call fcn.004a7120
push 0
push 0
push 0x190
push 2
push 0x8c
jmp 0x421de9
mov eax, dword [esp + 0x1c]
cmp eax, dword [esi + ebx*4 + 0xe11a]
jge 0x421dc6
movsx ecx, word [edi + 0x162]
cmp dword [esp + 0x18], ecx
jl 0x421e13
mov ecx, dword [esi + 0x59c]
push 0
push 0
push 0
push 0
call fcn.004a7120
push 0
push 0
push 0x190
push 2
push 0x8d
call fcn.00402617
mov ecx, dword [esi + 0x1798]
add esp, 4
push eax
call fcn.0040245f
mov ecx, esi
call fcn.00401640
mov dword [esi + 0x6c18], 0
jmp 0x422941
movzx eax, word [edi + 0xa6]
test ax, ax
je 0x421e71
movsx eax, ax
cdq
xor eax, edx
sub eax, edx
cmp dword [esp + 0x2c], eax
jle 0x421e71
mov ecx, dword [esi + 0x59c]
push 0
push 0
push 0
push 0
call fcn.004a7120
mov ecx, dword [esi + 0x1798]
push 0
push 0
push 0x190
push 2
push str.You_have_too_many_of_this_item_to_turn_it_on.
call fcn.0040245f
mov ecx, esi
call fcn.00401640
mov dword [esi + 0x6c18], 0
jmp 0x422941
mov ecx, dword [edi + 0x248]
test ecx, ecx
push 0
push 0
push 0
push 0
jne 0x421e89
mov ecx, dword [esi + 0x598]
call fcn.004a7120
mov ecx, esi
mov dword [edi + 0x108], 1
call fcn.00401640
mov dword [esi + 0x6c18], 0
jmp 0x422941
mov edx, dword [edi]
mov eax, dword [edx + 8]
mov ecx, edi
call eax
test eax, eax
je 0x42289f
mov eax, dword [edi + 0x80]
push eax
mov ecx, esi
call fcn.00402676
movsx ecx, word [edi + 0x194]
mov dword [esp + 0x18], eax
movzx eax, word [edi + 0x19c]
movsx ebp, ax
cmp ebp, dword [edi + 0x80]
mov dword [esp + 0x14], ecx
je 0x421f8e
test ax, ax
je 0x421f8e
push ebp
mov ecx, esi
call fcn.00402676
mov ecx, dword [esi + 0x178c]
push ebp
mov dword [esp + 0x18], eax
call fcn.004028ec
movzx eax, word [eax + 0xa6]
test ax, ax
je 0x421f8e
movsx eax, ax
cdq
xor eax, edx
sub eax, edx
cmp dword [esp + 0x14], eax
jle 0x421f8e
mov ecx, dword [esi + 0x1798]
push 0
push 0
push 0x12c
push 1
push str.You_have_too_much_ammo_for_this_item_to_be_used
call fcn.0040245f
mov edx, dword [ebx]
xor edx, 0x12345678
cmp edx, 0x28
jle 0x421f59
mov eax, ebx
jmp 0x421f69
push 0x28
lea ecx, [esp + 0x30]
call fcn.004011e5
or dword [esp + 0x10], 0x40
test byte [esp + 0x10], 0x40
mov eax, dword [eax]
mov dword [ebx], eax
je 0x421f86
and dword [esp + 0x10], 0xffffffbf
lea ecx, [esp + 0x2c]
push ecx
call fcn.004aa7a0
add esp, 4
mov dword [esp + 0x14], 0xffffffff
cmp word [edi + 0x1b4], 0
jne 0x42200d
mov edx, dword [esi + 0x6bc8]
cmp dword [edx + 0x9c], 0
jl 0x42200d
cmp dword [esi + 0x1774], 0
je 0x42200d
mov eax, dword [ebx]
xor eax, 0x12345678
cmp eax, 0x19
jle 0x421fc0
mov eax, ebx
jmp 0x421fd3
push 0x19
lea ecx, [esp + 0x30]
call fcn.004011e5
or dword [esp + 0x10], 0x80
test byte [esp + 0x10], 0x80
mov ecx, dword [eax]
mov dword [ebx], ecx
je 0x421feb
lea edx, [esp + 0x2c]
push edx
call fcn.004aa7a0
add esp, 4
mov ecx, dword [esi + 0x59c]
push 0
push 0
push 0
push 0
call fcn.004a7120
mov dword [esi + 0x6c18], 0
jmp 0x422941
cmp word [edi + 0x1b6], 0
jne 0x422081
mov eax, dword [esi + 0x6bc4]
cmp dword [eax + 0x78], 0
jle 0x422081
mov ecx, dword [ebx]
xor ecx, 0x12345678
cmp ecx, 0x19
mov edi, 0x100
jle 0x422039
mov eax, ebx
jmp 0x422048
push 0x19
lea ecx, [esp + 0x30]
call fcn.004011e5
or dword [esp + 0x10], edi
test dword [esp + 0x10], edi
mov edx, dword [eax]
mov dword [ebx], edx
je 0x421feb
lea eax, [esp + 0x2c]
push eax
call fcn.004aa7a0
mov ecx, dword [esi + 0x59c]
add esp, 4
push 0
push 0
push 0
push 0
call fcn.004a7120
mov dword [esi + 0x6c18], 0
jmp 0x422941
movzx ecx, word [edi + 0x198]
test cx, cx
je 0x422114
movzx eax, word [edi + 0x19a]
test ax, ax
jle 0x422114
movsx ebp, cx
movsx ecx, ax
mov dword [esp + 0x20], ecx
push ebp
mov ecx, esi
call fcn.00402676
cmp eax, dword [esp + 0x20]
jge 0x422114
mov ecx, dword [esi + 0x178c]
push ebp
call fcn.004028ec
test eax, eax
je 0x4220fb
mov edx, dword [esp + 0x20]
push edx
add eax, 0x48
push eax
lea eax, [esp + 0x40]
push str.You_are_required_to_have_a__s__d__to_use_this_item.
push eax
call fcn.004c1313
add esp, 0x10
push 0
push 0
push 0x12c
push 1
lea ecx, [esp + 0x48]
push ecx
mov ecx, dword [esi + 0x1798]
call fcn.0040245f
mov edx, dword [ebx]
xor edx, 0x12345678
cmp edx, 0x32
mov edi, 0x200
jle 0x422162
mov eax, ebx
jmp 0x422226
movzx eax, word [edi + 0xa6]
test ax, ax
je 0x422169
movsx eax, ax
cdq
xor eax, edx
sub eax, edx
cmp dword [esp + 0x18], eax
jle 0x422169
mov ecx, dword [esi + 0x1798]
push 0
push 0
push 0x12c
push 1
push str.You_have_too_many_of_this_item_to_use_it
call fcn.0040245f
mov edx, dword [ebx]
xor edx, 0x12345678
cmp edx, 0x32
mov edi, 0x400
jle 0x422162
mov eax, ebx
jmp 0x422226
push 0x32
jmp 0x422219
movsx edx, word [edi + 0x194]
cmp dword [esp + 0x14], edx
jge 0x4221b2
mov eax, dword [ebx]
xor eax, 0x12345678
cmp eax, 0x19
mov edi, 0x800
jle 0x42218b
mov eax, ebx
jmp 0x42219a
push 0x19
lea ecx, [esp + 0x30]
call fcn.004011e5
or dword [esp + 0x10], edi
test dword [esp + 0x10], edi
mov ecx, dword [eax]
mov dword [ebx], ecx
je 0x42286b
lea edx, [esp + 0x2c]
push edx
jmp 0x422863
cmp dword [edi + 0x1ac], 2
jne 0x42223e
mov eax, dword [0x563908]
mov ecx, dword [eax + 0x6bc8]
cmp dword [ecx + 0x9c], 0
jl 0x4221e6
mov ecx, dword [esi + 0x1774]
test ecx, ecx
je 0x4221e6
call fcn.00401311
test eax, eax
jne 0x42223e
mov ecx, dword [esi + 0x1798]
push 0
push 0
push 0x12c
push 1
push str.You_are_not_allowed_to_throw_the_ball_right_now.
call fcn.0040245f
mov edx, dword [ebx]
xor edx, 0x12345678
cmp edx, 0x19
mov edi, 0x1000
jle 0x422217
mov eax, ebx
jmp 0x422226
push 0x19
lea ecx, [esp + 0x30]
call fcn.004011e5
or dword [esp + 0x10], edi
test dword [esp + 0x10], edi
mov eax, dword [eax]
mov dword [ebx], eax
je 0x42286b
lea ecx, [esp + 0x2c]
push ecx
jmp 0x422863
mov edx, dword [esi + 0x138]
mov eax, dword [edx + 0x3c]
cmp eax, dword [edi + 0x130]
jge 0x4222c8
mov ecx, dword [esi + 0x1798]
push 0
push 0
push 0x12c
push 1
push str.You_do_not_have_enough_cash_to_use_this_item.
call fcn.0040245f
mov ecx, dword [ebx]
xor ecx, 0x12345678
cmp ecx, 0x32
mov edi, 0x2000
jle 0x422280
mov eax, ebx
jmp 0x42228f
push 0x32
lea ecx, [esp + 0x30]
call fcn.004011e5
or dword [esp + 0x10], edi
test dword [esp + 0x10], edi
mov edx, dword [eax]
mov dword [ebx], edx
je 0x4222a6
lea eax, [esp + 0x2c]
push eax
call fcn.004aa7a0
add esp, 4
mov ecx, dword [esi + 0x5a8]
push 0
push 0
push 0
push 0
call fcn.004a7120
mov dword [esi + 0x6c18], 0
jmp 0x422941
movzx eax, word [edi + 0x196]
test ax, ax
je 0x4222eb
mov ecx, dword [edi + 0x100]
movsx edx, ax
xor ecx, 0x12345678
cmp ecx, edx
jge 0x42289f
push edi
mov ecx, esi
call fcn.00402239
mov ecx, dword [0x563914]
mov edx, dword [esi + 0x29dc]
mov ebp, dword [ecx + 4]
mov edx, dword [ebp + edx*4]
xor edx, dword [ecx]
cmp eax, edx
jg 0x42282f
mov eax, dword [edi]
mov edx, dword [eax + 4]
mov ecx, edi
call edx
cmp eax, 6
jne 0x422448
movzx eax, word [edi + 0x2fe]
test ax, ax
jne 0x422344
cmp word [edi + 0x300], ax
jne 0x422344
cmp word [edi + 0x302], ax
je 0x422448
movzx eax, word [edi + 0x2fc]
test ax, ax
mov dword [esp + 0x1c], 0
mov dword [esp + 0x18], 0
mov dword [esp + 0x14], 0
jne 0x422370
mov edx, dword [edi + 0x80]
jmp 0x422375
movsx edx, ax
neg edx
mov eax, dword [0x563908]
mov ecx, dword [eax + 0x580]
mov eax, dword [ecx]
test eax, eax
je 0x4223b9
cmp dword [eax + 0xc], edx
jne 0x4223b2
mov ecx, dword [esi + 0x6bc4]
movsx ebp, word [ecx + 0x64]
cmp dword [eax + 0x10], ebp
jne 0x42239f
add dword [esp + 0x1c], 1
movsx ecx, word [ecx + 0x60]
cmp dword [eax + 0x14], ecx
jne 0x4223ad
add dword [esp + 0x18], 1
add dword [esp + 0x14], 1
mov eax, dword [eax + 4]
test eax, eax
jne 0x422386
movzx eax, word [edi + 0x2fe]
test ax, ax
je 0x4223fa
movsx edx, ax
cmp dword [esp + 0x18], edx
jl 0x4223fa
push 0
push 0
push 0x12c
push 1
push str.You_have_too_many_of_this_item_active_already.
mov ecx, dword [esi + 0x1798]
call fcn.0040245f
push 0x19
push 0x28
push edi
mov ecx, esi
call fcn.004012bc
jmp 0x42286b
movzx eax, word [edi + 0x300]
test ax, ax
je 0x422421
movsx eax, ax
cmp dword [esp + 0x1c], eax
jl 0x422421
push 0
push 0
push 0x12c
push 1
push str.Your_team_has_too_many_of_this_item_active_already.
jmp 0x4223de
movzx eax, word [edi + 0x302]
test ax, ax
je 0x422448
movsx ecx, ax
cmp dword [esp + 0x14], ecx
jl 0x422448
push 0
push 0
push 0x12c
push 1
push str.Too_many_of_this_item_active_already.
jmp 0x4223de
movzx ebp, word [edi + 0x1a4]
call fcn.004c11ab
cdq
mov ecx, 0x3e8
idiv ecx
movsx eax, bp
cmp edx, eax
jge 0x4224fa
cmp bp, 0x32
jge 0x422488
mov ecx, dword [esi + 0x1798]
push 0
push 0
push 0xc8
push 1
push str.Weapon_misfired.
call fcn.0040245f
cmp word [edi + 0x1a4], 0x12c
jge 0x4224a6
mov ecx, dword [esi + 0x5a8]
push 0
push 0
push 0
push 0
call fcn.004a7120
movsx eax, word [edi + 0x1a6]
mov ecx, dword [ebx]
xor ecx, 0x12345678
cmp ecx, eax
mov edi, 0x4000
jle 0x4224c2
mov eax, ebx
jmp 0x4224d0
push eax
lea ecx, [esp + 0x30]
call fcn.004011e5
or dword [esp + 0x10], edi
test dword [esp + 0x10], edi
mov edx, dword [eax]
mov dword [ebx], edx
je 0x42289f
lea eax, [esp + 0x2c]
push eax
call fcn.004aa7a0
add esp, 4
mov dword [esi + 0x6c18], 0
jmp 0x422941
mov ecx, dword [esi + 0x6c18]
mov dword [esi + 0x6c1c], ecx
call fcn.00401d39
mov dword [esi + 0x6c20], eax
mov edx, dword [edi]
mov eax, dword [edx + 4]
mov ecx, edi
call eax
add eax, 0xfffffff9
cmp eax, 0xa
ja case.0x42252d.8
movzx ecx, byte [eax + 0x422c60]
jmp dword [ecx*4 + 0x422c48]
push edi
mov ecx, esi
mov dword [esp + 0x2c], 0
call fcn.0040266c
mov dword [esi + 0x6c18], 0
jmp 0x422941
mov edx, dword [edi + 0x260]
mov ecx, dword [esi + 0x179c]
push edx
mov dword [esp + 0x2c], 0
call fcn.004b2f30
test eax, eax
je 0x42289f
mov ecx, dword [esi + 0x6bc8]
mov ecx, dword [ecx + 0x48]
cmp word [ecx + 0x3fc], 1
jne 0x42289f
movsx ecx, word [eax + 0x408]
cmp ecx, 0xffffffff
je 0x4226cc
mov ebx, dword [esi + 0xf8]
mov eax, ebx
sub eax, ecx
cdq
and edx, 0xf
add eax, edx
mov ebp, eax
lea eax, [ebx + ecx + 0xf]
cdq
and edx, 0xf
add eax, edx
mov ebx, eax
mov eax, dword [esi + 0xfc]
sub eax, ecx
cdq
and edx, 0xf
add eax, edx
sar eax, 4
mov dword [esp + 0x14], eax
mov eax, dword [esi + 0xfc]
lea eax, [eax + ecx + 0xf]
cdq
and edx, 0xf
sar ebp, 4
add eax, edx
mov edx, dword [esi + 0x1790]
xor ecx, ecx
sar ebx, 4
sar eax, 4
test ebp, ebp
setl cl
sub ecx, 1
and ecx, ebp
mov ebp, dword [edx + 4]
add ebp, 0xffffffff
cmp ebp, ecx
mov dword [esp + 0x20], ebp
jl 0x42260c
mov dword [esp + 0x20], ecx
xor ecx, ecx
test ebx, ebx
setl cl
mov dword [esp + 0x1c], ebp
sub ecx, 1
and ecx, ebx
cmp ebp, ecx
jl 0x422624
mov dword [esp + 0x1c], ecx
mov ebp, dword [esp + 0x14]
mov edx, dword [edx + 8]
xor ecx, ecx
test ebp, ebp
setl cl
sub ecx, 1
and ebp, ecx
lea ecx, [edx - 1]
cmp ecx, ebp
mov dword [esp + 0x14], ecx
jl 0x422646
mov dword [esp + 0x14], ebp
xor edx, edx
test eax, eax
setl dl
mov dword [esp + 0x18], ecx
sub edx, 1
and eax, edx
cmp ecx, eax
jl 0x42265e
mov dword [esp + 0x18], eax
mov ecx, dword [esi + 0x6bc8]
test ecx, ecx
je 0x422672
mov eax, dword [ecx]
mov edx, dword [eax + 0xe4]
call edx
mov ebx, dword [esp + 0x20]
xor al, al
cmp ebx, dword [esp + 0x1c]
mov byte [esp + 0x27], al
jg 0x4226cc
test al, al
jne 0x42289f
mov ebp, dword [esp + 0x14]
cmp ebp, dword [esp + 0x18]
jg 0x4226bb
test al, al
jne 0x4226bb
mov ecx, dword [esi + 0x1790]
push ebp
push ebx
call fcn.004022ca
test eax, eax
je 0x4226ae
mov byte [esp + 0x27], 1
mov al, byte [esp + 0x27]
add ebp, 1
cmp ebp, dword [esp + 0x18]
jle 0x422694
add ebx, 1
cmp ebx, dword [esp + 0x1c]
jle 0x422682
test al, al
jne 0x42289f
movzx eax, word [edi + 0x80]
mov cx, word [esi + 0xf8]
mov dx, word [esi + 0xfc]
mov word [esi + 0x6c38], ax
movzx eax, word [esi + 0x104]
mov word [esi + 0x6c3e], ax
xor eax, eax
mov word [esi + 0x6c3a], cx
push edi
mov ecx, esi
mov word [esi + 0x6c3c], dx
mov dword [esi + 0x6c30], eax
mov dword [esi + 0x6c34], eax
call fcn.004026d0
push edi
mov ecx, esi
call fcn.004019e7
mov dword [esi + 0x6c18], 0
jmp 0x422941
movzx ecx, word [edi + 0x80]
movzx edx, word [esi + 0xf8]
mov word [esi + 0x6c38], cx
movzx ecx, word [esi + 0xfc]
mov word [esi + 0x6c3a], dx
movzx edx, word [esi + 0x104]
xor eax, eax
mov word [esi + 0x6c3c], cx
push edi
mov ecx, esi
mov dword [esp + 0x2c], eax
mov word [esi + 0x6c3e], dx
mov dword [esi + 0x6c30], eax
mov dword [esi + 0x6c34], eax
call fcn.004026d0
push edi
mov ecx, esi
call fcn.004019e7
mov dword [esi + 0x6c18], 0
jmp 0x422941
push edi
mov ecx, esi
mov dword [esp + 0x2c], 0
call fcn.00401785
mov dword [esi + 0x6c18], 0
jmp 0x422941
push edi
mov ecx, esi
mov dword [esp + 0x2c], 0
call fcn.004024cd
mov dword [esi + 0x6c18], 0
jmp 0x422941
cmp word [edi + 0x19e], 0
push edi
mov ecx, esi
jle 0x422809
mov dword [esp + 0x2c], 0
call fcn.004026d0
push edi
mov ecx, esi
call fcn.004019e7
mov dword [esi + 0x6c18], 0
jmp 0x422941
mov eax, dword [edi + 0x80]
mov dword [esp + 0x2c], eax
call fcn.004023f6
push edi
mov ecx, esi
call fcn.004019e7
mov dword [esi + 0x6c18], 0
jmp 0x422941
mov ecx, dword [ebx]
xor ecx, 0x12345678
cmp ecx, 0x19
mov edi, 0x8000
jle 0x422845
mov eax, ebx
jmp 0x422854
push 0x19
lea ecx, [esp + 0x30]
call fcn.004011e5
or dword [esp + 0x10], edi
test dword [esp + 0x10], edi
mov edx, dword [eax]
mov dword [ebx], edx
je 0x42286b
lea eax, [esp + 0x2c]
push eax
call fcn.004aa7a0
add esp, 4
mov ecx, dword [esi + 0x5a8]
push 0
push 0
push 0
push 0
call fcn.004a7120
mov dword [esi + 0x6c18], 0
jmp 0x422941
cmp eax, dword [esi + 0xe092]
jg 0x42289f
mov dword [esi + 0x2a54], 1
mov dword [esi + 0x6c18], 0
jmp 0x422941
cmp dword [esi + 0x6c40], ebp
jg 0x422941
mov edx, dword [ecx]
mov eax, dword [edx + 4]
call eax
add eax, 0xfffffff9
cmp eax, 0xa
ja case.0x4228d0.8
movzx ecx, byte [eax + 0x422c74]
jmp dword [ecx*4 + 0x422c6c]
mov dx, word [esi + 0xf8]
mov ax, word [esi + 0xfc]
mov cx, word [esi + 0x104]
mov word [esi + 0x6c3a], dx
mov word [esi + 0x6c3c], ax
mov word [esi + 0x6c3e], cx
mov ecx, dword [0x56391c]
mov edx, dword [ecx]
mov edx, dword [edx + 0x2c]
lea eax, [esi + 0x6c30]
push eax
mov dword [esp + 0x2c], 0
call edx
jmp 0x422937
mov eax, dword [esi + 0x6c2c]
mov ecx, dword [eax + 0x80]
mov dword [esp + 0x28], ecx
push eax
mov ecx, esi
call fcn.004023f6
mov dword [esi + 0x6c2c], 0
mov edx, dword [0x56c728]
or edx, dword [0x56c72c]
jne 0x422965
call dword [sym.imp.KERNEL32.dll_GetTickCount]
mov ecx, eax
mov eax, 0xcccccccd
mul ecx
mov eax, edx
shr eax, 3
jmp 0x42299d
lea edx, [esp + 0x2c]
push edx
call dword [sym.imp.KERNEL32.dll_QueryPerformanceCounter]
mov eax, dword [esp + 0x30]
mov ecx, dword [esp + 0x2c]
push 0
push 0x64
push eax
push ecx
call fcn.004c0bd0
mov ecx, dword [0x56c72c]
push ecx
mov ecx, dword [0x56c728]
push ecx
push edx
push eax
call fcn.004c0b20
and eax, 0x7fffffff
sub eax, dword [esi + 0x6bd4]
mov dword [esp + 0x1c], 0
cdq
xor eax, edx
sub eax, edx
mov dword [esp + 0x14], eax
mov edx, dword [esi + 0x138]
cmp word [edx + 0x42], 0
mov dword [esp + 0x20], 0
jle 0x422bf6
mov dword [esp + 0x18], 0x44
jmp 0x4229e0
mov eax, dword [esi + 0x138]
mov ecx, dword [esp + 0x18]
movsx eax, word [ecx + eax]
cdq
xor eax, edx
sub eax, edx
cmp eax, 0x13ec
jg 0x422bd4
mov edx, dword [esi + 0x178c]
mov edi, dword [edx + eax*4 + 0x1f48]
test edi, edi
je 0x422bd4
mov eax, dword [edi]
mov edx, dword [eax + 8]
mov ecx, edi
call edx
test eax, eax
je 0x422bd4
movzx ecx, word [edi + 0x196]
test cx, cx
jle 0x422bd4
cmp dword [esp + 0x1c], 0
jne 0x422aea
cmp dword [edi + 0x138], 0
jle 0x422ab2
mov eax, dword [edi + 0x100]
lea ebx, [edi + 0x100]
movsx ecx, cx
xor eax, 0x12345678
cmp eax, ecx
jne 0x422ab2
mov ebp, dword [edi + 0x114]
xor ebp, 0x12345678
call fcn.00401d39
sub eax, ebp
cdq
xor eax, edx
sub eax, edx
cmp eax, dword [edi + 0x138]
jl 0x422ab2
movzx eax, word [edi + 0x19c]
test ax, ax
je 0x422a9b
movsx edx, ax
push edx
mov ecx, esi
call fcn.00402676
test eax, eax
jle 0x422ab2
mov eax, dword [ebx]
push 0x12345678
push eax
push ebx
mov dword [ebx], 0x12345678
call fcn.004aa7b0
add esp, 0xc
mov eax, dword [edi + 0x140]
test eax, eax
jle 0x422bd4
mov ecx, dword [edi + 0x100]
movsx edx, word [edi + 0x196]
lea ebp, [edi + 0x100]
xor ecx, 0x12345678
cmp ecx, edx
jne 0x422bd4
cmp dword [esp + 0x14], eax
jmp 0x422b8b
cmp dword [edi + 0x13c], 0
jle 0x422b5f
mov eax, dword [edi + 0x100]
xor eax, 0x12345678
lea ebx, [edi + 0x100]
jle 0x422b5f
movsx ecx, cx
cmp eax, ecx
je 0x422b5f
mov ebp, dword [edi + 0x114]
xor ebp, 0x12345678
call fcn.00401d39
sub eax, ebp
cdq
xor eax, edx
sub eax, edx
cmp eax, dword [edi + 0x13c]
jl 0x422b5f
movzx eax, word [edi + 0x19c]
test ax, ax
je 0x422b48
movsx edx, ax
push edx
mov ecx, esi
call fcn.00402676
test eax, eax
jle 0x422b5f
mov eax, dword [ebx]
push 0x12345678
push eax
push ebx
mov dword [ebx], 0x12345678
call fcn.004aa7b0
add esp, 0xc
mov ecx, dword [edi + 0x134]
test ecx, ecx
jle 0x422bd4
mov eax, dword [edi + 0x100]
xor eax, 0x12345678
lea ebp, [edi + 0x100]
jle 0x422bd4
movsx edx, word [edi + 0x196]
cmp eax, edx
je 0x422bd4
cmp dword [esp + 0x14], ecx
jl 0x422bd4
movzx eax, word [edi + 0x19c]
test ax, ax
je 0x422ba8
movsx eax, ax
push eax
mov ecx, esi
call fcn.00402676
test eax, eax
jle 0x422bd4
mov eax, dword [ebp]
push 0x12345678
push eax
push ebp
mov dword [ebp], 0x12345678
call fcn.004aa7b0
add esp, 0xc
call fcn.00401d39
mov dword [esp + 0x14], 0
mov dword [esi + 0x6bd4], eax
mov ecx, dword [esi + 0x138]
mov eax, dword [esp + 0x20]
movsx edx, word [ecx + 0x42]
add dword [esp + 0x18], 4
add eax, 1
cmp eax, edx
mov dword [esp + 0x20], eax
jl 0x4229e0
mov eax, dword [esp + 0x1c]
add eax, 1
cmp eax, 2
mov dword [esp + 0x1c], eax
jl 0x4229b4
mov eax, dword [0x563908]
cmp dword [eax + 0x1774], 0
pop edi
pop esi
pop ebp
pop ebx
je 0x422c2e
cmp dword [esp + 0x24], 0
je 0x422c2e
mov ecx, dword [eax + 0x1774]
call fcn.00401ab4
mov ecx, dword [esp + 0x128]
mov eax, dword [esp + 0x18]
xor ecx, esp
call fcn.004c118f
add esp, 0x12c
ret